• oauth2.0认证模式


    本文采用springboot+redis实现了oauth2.0的认证模式,项目源码地址:https://gitee.com/menbbo/icore-sso
    oauth2.0是一种开发授权标准,包括了4种认证模式,授权码模式、简化模式、密码模式以及客户端凭证模式。
    1.授权码模式
      1)用户访问页面;
    2)访问页面重定向到认证服务器;
    3)认证服务提供登录页面,用户授权登录;
    4)认证服务器生成授权码;验证clientId是否存在,redirectUri与clientId是否匹配。验证用户名与密码是否正确,如果正确则生成授权码,并保存在redis中,并携带授权码跳转至returnUrl;
    5)通过授权码换取token,clientId、grantType(决定使用哪种验证模式)来生成accessToken和refreshToken,
    并将其保存至redis中,并删除之前的授权码。
    适用于第三方登录。优点:安全,第三方不需要用户名密码;缺点:需要多次访问认证服务器。
    2.密码模式(账号密码去换取token)
    1)用户在登录页面输入用户名密码;
    2)登录页面使用用户名密码去认证服务器认证;
    3)使用认证服务器返回的token去访问资源。
    优点是不需要多次请求;缺点是认证服务器方和应用方需要高度依赖。
    适用于自家公司搭建的认证服务器。
    3.客户端凭证模式
    1)用户访问应用客户端;
    2)验证clientId与clientSecret是否匹配,匹配则生成accessToken、refreshToken保存并返回,无需用户授权;
    3)使用token去访问资源服务器。
    这是一种最简单的登录模式,只要客户端请求,就颁发ccessToken。使用的前提是对客户端完全信任,整个过程不需要
    用户参与。
    4.简化模式
    简化模式不通过第三方应用程序的服务器,直接在浏览器中向认证服务器申请令牌,跳过授权码模式。
    1)用户访问应用页面,重定向到认证服务器;
    2)认证服务器提供登录页面,用户授权登录;
    3)认证服务器携带token跳转至returnUrl页面;
    4)使用token访问资源。
    优点是简单,缺点是无法存储refreshToken,导致无法刷新token。
    适用场景:问卷调查、评论。
  • 相关阅读:
    关于Qt国产化系统开发的几点总结
    C#和Qt实现的对于异常处理的一个使用策略
    echarts 自定义省份区块颜色的两种方法
    获取某个文件下的.vue文件
    仿写单选框/多选框
    重置对象属性
    elementUI之树形数据Table遇到的问题
    sass使用记录
    koa的使用记录
    六顶思想帽
  • 原文地址:https://www.cnblogs.com/menbo/p/14426369.html
Copyright © 2020-2023  润新知