//notes on everything

Raspberry 的博客

> things I build, learn, and think about

consttags=[
]
const posts = [

在 macOS 原生应用中实现 OIDC 登录:从协议到落地

最近我在一个 macOS 桌面应用里从零实现了完整的 OIDC 登录:Authorization Code + PKCE、系统浏览器授权、Keychain 持久化、token 惰性刷新与轮换、userinfo 用户资料——全程没有引入任何第三方认证库,只用 Apple 平台自带的组件。本文把这段实现整理成一份通用的工程指南:协议背景、设计决策及其理由、端到端流程、踩过的构建系统与调试陷阱,以及一份可以直接照着做的检查清单。

#OIDC#swift#macOS

0️⃣ Objective-C 基础

--- 动态类型和动态绑定 2.1 动态绑定和id数据类型 id类型:==是一种动态类型,一种通用的对象类型==,==可以指向任何 Objective-C 对象的指针,可以用来存储属于任何类的对象==。你可以用它指向任何类的实例(如 NSString、NSArray 或自定义类),但在运行时需确保对象能响应调用的方法,否则会崩溃。 https://chat.deepseek.com/a/chat/s/77092b14-4720-49e9-bfff-9a85469528d3 Obj-C系统总是跟踪对象所属的类:先判定对象的类,然后在==运行时==确定需要动态调用的方法,而不是在编译的时候。 2.2 编译时和运行时检查 因为存储在id变量中的对象在编译时无法确定,所以一些==测试推迟到运行时进行==。也就是说,推迟到程序执行时。

#iOS#Objective-C
]