oauth2 单点登录 授权系统

官方文档流程图
https://www.processon.com/view/link/5aeb01d1e4b090f6eec76606

博客参考
http://www.hyhblog.cn/2018/04/26/oauth2_intro/

1 用户访问客户端,后者将前者导向认证服务器。

2 用户选择是否给予客户端授权。

3 假设用户给予授权,认证服务器将用户导向客户端事先指定的”重定向URI”(redirection URI),同时附上一个授权码。

4 客户端收到授权码,附上早先的”重定向URI”,向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。

5 认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)
oauth2 单点登录 授权系统_第1张图片
先看流程图先理清步骤 多看几遍流程步骤一定要通

单点登录 的原理

通俗来说 就是某个库的用户可以根据第三方授权登录授权的系统 而不用每个项目都存一遍用户账号信息 在这个主项目上面写一个授权服务 让其他项目去添加这个这个授权服务 别的系统访问 传送token值 通过token值去判断

token值OK 然后再校验账号密码 切记必须是先经过授权 先判断token 在检验账号密码

图解
oauth2 单点登录 授权系统_第2张图片
项目步骤

1.主项目登录时。先经过oauth授权判断有没有 access_token 值 没有的话进入验证账户密码验证成功后生成加密access_token 存进数据库并生成session。获取redirect_ uri跳转指页面 2.在登录状态时访问 baidu.com:86 。先经过权限判断 access_token 是否存在 (不存在证明没有登录。跳转到这个主项目的登录入口。填写账号密码后对比的是主项目的账号库,然后获取 redirect_ uri 跳转指页面 ) 然后对比数据库数据中的 access_token 是否正确正常证明可以访问、也是获取redirect_ uri跳转指页面

你可能感兴趣的:(授权系统)