# OAUTH
Open Authorization
# 以github帐号登陆举例,以下授权服务器均称为gh
# 流程
1. 前端跳转到授权服务器(gh的登陆页面或者授权页面)
2. gh授权后会生成一个access_token,并在url中跳转回前台(这个url可以自己设置)
3. 前台通过access_token 向后台"登录" 获取token或者cookie啥的.
4. 后台拿到access_token ,向github要github的用户信息(这里其实分为两步,先通过gh提供的接口获取访问用户信息的token,再通过这个token获取用户基本信息).
拿到基本信息后,查找githubuser是否有绑定的自己系统的用户.有则生成访问凭证.
#
绑定其实同理,先获取到access_token给后台,后台拿到gh用户基本信息,再跟当前登录用户绑定
# 其他
> https://docs.github.com/cn/developers/apps/building-oauth-apps/authorizing-oauth-apps
github需要先注册应用号,获取一个 Client ID.获取access_token时需要提供这个client_id,如 https://github.com/login/oauth/authorize?client_id=a73be8eXX3615cb88f1
不管oauth授权模式有几种,整个逻辑是这样的.授权网站的用户名和密码以及登陆方式,对当前网站都完全隐藏.当前登陆网站只需要知道 "这是github 用户 XXX"就行了,只需要维护github 用户和自己系统的用户的关系就行.