极客时间 OAuth 2.0实战课 07-08 笔记
移动端使用OAuth2.0
- 无server端APP (OAuth2.0 不建议)
为避免请求访问令牌时需要的 app_secret 只能保存在用户本地设备上带来的安全隐患,OAuth2.0给出指导方案: PKCE 协议(Proof Key for Code Exchange by OAuth Public Clients :OAuth公共客户端代码交换的证明密钥)。
可通过code_verifier 和 code_challenge挑战码来代替app_secret,如下图所示:
code_verifier : 自定义生成的字符串验证码,用于校验确保安全。
code_challenge: 挑战码,以code_verifier为参数,按照指定算法生成的挑战码。
code_challenge_method:挑战码生成的方法,code_challenge_method=plain
即code_verifier=code_challenge;
code_challenge_method=S256
即code_verifier= code_challenge = BASE64URL-ENCODE(SHA2