OAuth2认证方式:
在任何 OAuth 流程中都有三个参与者:
- 客户端 - 登录的人员或用户
- 使用者 - 客户端想要登录的应用程序(在上图中是 GitLab)
- 服务提供者 - 用户通过其进行身份验证的外部应用程序。(上图中为 GitHub)
使用OAuth进行认证和授权的过程如下所示:
(A)用户打开客户端以后,客户端要求用户给予授权。
(B)用户同意给予客户端授权。
(C)客户端使用上一步获得的授权,向认证服务器申请令牌。
(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
(E)客户端使用令牌,向资源服务器申请获取资源。
(F)资源服务器确认令牌无误,同意向客户端开放资源
1、客户端可以是手机app,也可以是web浏览器,开始请求自己的服务端。
2、服务端发现没有登陆,则重定向跳转到认证服务器。
3、认证服务器展示授权页面,等待用户手动确认授权。
4、用户点击确认后,授权页面请求认证服务器,获取授权码
5、客户端获取上一步返回的授权码。
6、客户端将授权码上报给自己的服务端。
7、服务端拿着授权码去认证服务器换取access_token。
8、服务端通过access_token去认证服务器获取用户资料,如openid,用户昵称,性别等信息。
提供的包:“golang.org/x/oauth2”