第三方登录流程微博
前端获取认证code
加载Vue页面时动态提交请求并获取微博授权url django收到请求的URL后,会将APP应用程序id(client_id )和回调地址(redirect_uri )发布到微博授权成功后,跳转到回调界面,添加code参数Vue获取微博返回的code,然后获取django后端(上面的redirect_uri ) 1.2获取code的微博accce
access_token
1.3获取微博用户基本信息并保存在数据库中使用获取的access_token调用获取用户基本信息的接口,获取用户第三方平台的基本信息并保存在数据库中,然后与本地用户关联
1.4生成token并在微博上向Vue django后端成功认证后,可以使用JWT生成token,然后返回vue将token保存在localStorage中,以便用户访问其他页面进行认证
2.第三方登录与本地登录的关联(三种情况)
2.1案例1:未本地登录,首次登录第三方
2.2情况2 :没有本地登录,再次登录第三方
此时用户已注册。 获得openid后,直接查找对应的本地用户即可
2.3情况3 :本地登录并绑定到第三方
这只需将获取的openid绑定到本地用户即可
3.oauth认证原理
OAuth是一种开放标准,允许第三方APP应用程序访问存储在网站上的专用资源,而无需向第三方APP提供用户名和密码。
OAuth允许用户提供令牌而不是用户名和密码来访问存储在特定服务提供商中的数据。
如果代码能给出三方以换取数据,则该代码证明该用户是三方的真正用户
4.为什么使用三方登录
服务端希望用户注册,但用户不擅长填写注册时的各种信息(主要为了保证用户的唯一性,各种用户名已经被占用,密码格式受到限制)。
另一方面,对于大多数人安装的APP应用程序(如微信、QQ、微博等),用户都必须注册到某个APP应用程序中,这证明了用户在已注册的APP应用程序中的唯一性。
第三方登录的本质是认证时第三方APP身份提供的表示第三方APP中用户唯一性的openid,openid存储在第三方服务控制的本地存储器中。
注册开放平台微博
新浪微博开放平台: https://open.weibo.com/
注册账号
注册新浪微博账号
进入首页。 创建网站访问的APP应用程序: https://open.weibo.com/
2.接口文档
查看接口文档
https://open.weibo.com/wiki/许可机制说明
OAuth2.0许可证认证
界面说明
OAuth2/authorize向用户请求许可
Token OAuth2/access_token获取授权的Access Token,UID