JustAuth/docs/explain.md
2020-05-13 02:19:20 +08:00

2.8 KiB
Raw Blame History

本文将就JustAuth中涉及到的一些配置、关键词做一下简单说明方便使用者理解、使用。

本文相关名词

  • 开发者 指使用JustAuth的开发者
  • 第三方 指开发者对接的第三方网站比如QQ平台、微信平台、微博平台
  • 用户 指最终服务的真实用户

JustAuth中的关键词

以下内容了解后将会使你更容易地上手JustAuth。

  • clientId 客户端身份标识符应用id一般在申请完Oauth应用后第三方平台颁发,唯一
  • clientSecret 客户端密钥一般在申请完Oauth应用后第三方平台颁发
  • redirectUri 开发者项目中的有效api地址。用户在确认第三方平台授权登录第三方平台会重定向到该地址并携带code等参数
  • state 用来保持授权会话流程完整性防止CSRF攻击的安全的随机的参数开发者生成
  • alipayPublicKey 支付宝公钥。当选择支付宝登录时,必传该值,由开发者生成
  • unionId 是否需要申请unionid目前只针对qq登录。注qq授权登录时获取unionid需要单独发送邮件申请权限。如果个人开发者账号中申请了该权限可以将该值置为true在获取openId时就会同步获取unionId。参考链接UnionID介绍
  • stackOverflowKey Stack Overflow 登陆时需单独提供的key第三方平台颁发
  • agentId 企业微信登陆时需单独提供该值,由第三方平台颁发为授权方的网页应用ID
  • source JustAuth支持的第三方平台比如GITHUB、GITEE等
  • uuid 一般为第三方平台的用户ID。以下几个平台需特别注意
    • 钉钉、抖音:uuid 为用户的 unionid
    • 微信公众平台登录、京东、酷家乐、美团:uuid 为用户的 openId
    • 微信开放平台登录、QQuuid 为用户的 openId,平台支持获取unionid unionidAuthToken 中(如果支持),在登录完成后,可以通过 response.getData().getToken().getUnionId() 获取
    • Googleuuid 为用户的 subsub为Google的所有账户体系中用户唯一的身份标识符详见OpenID Connect

注:建议通过uuid + source的方式唯一确定一个用户,这样可以解决用户身份归属的问题。因为 单个用户ID 在某一平台中是唯一的,但不能保证在所有平台中都是唯一的。

参考资料

关于OAuth2相关的内容、原理可以自行参阅以下资料