第三方登录先了解 OAuth 2.0
OAuth 协议的认证和授权的过程如下:
- 用户打开我的博客后,我想要通过GitHub获取改用户的基本信息
- 在转跳到GitHub的授权页面后,用户同意我获取他的基本信息
- 博客获得GitHub提供的授权码,使用该授权码向GitHub申请一个令牌
- GitHub对博客提供的授权码进行验证,验证无误后,发放一个令牌给博客端
- 博客端使用令牌,向GitHub获取用户信息
- GitHub 确认令牌无误,返回给我基本的用户信息
- oauth 详情介绍
登录GitHub 进入创建应用:
配置应用:
代码操作:
第一步:引导用户跳转 github 授权登录页面
GET: https://github.com/login/oauth/authorize?client_id=xxxxx&state=xxx&redirect_uri=xxxx;
(client_id 上面已经拿到了,state参数随便传多少,redirect_uri 就是你上面填的Authorization callback URL)
第二步: 用户授权后重定向 我们平台【回调地址】,返回code 参数值,通过code 再次访问 github
POST:https://github.com/login/oauth/access_token?client_id=xxx&client_secret=xxx&code=xxx&redirect_uri=回调地址
(这次会得到响应的access_token)
第三步:通过获取的access_token 换取 用户信息
GET: https://api.github.com/user?access_token=xxx;
第四步:得到github授权用户的个人信息,就可以插入到我们的数据库中去了,授权登录成功,跳转主页
最后用一张图来总结 :
文章引用 : 使用 GitHub OAuth 第三方验证登录