zoukankan      html  css  js  c++  java
  • 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_06-SpringSecurityOauth2研究-Oauth2授权码模式-申请令牌

    3.3 Oauth2授权码模式
    3.3.1 Oauth2授权模式
    Oauth2有以下授权模式:
    授权码模式(Authorization Code) 隐式授权模式(Implicit) 密码模式(Resource Owner Password
    Credentials) 客户端模式(Client Credentials)
    其中授权码模式和密码模式应用较多,本小节介绍授权码模式。

    3.3.2 授权码授权流程

    上边例举的黑马程序员网站使用微信认证的过程就是授权码模式,流程如下:
    1、客户端请求第三方授权
    2、用户(资源拥有者)同意给客户端授权
    3、客户端获取到授权码,请求认证服务器申请令牌
    4、认证服务器向客户端响应令牌
    5、客户端请求资源服务器的资源,资源服务校验令牌合法性,完成授权
    6、资源服务器返回受保护资源

    3.3.2 申请授权码

    请求认证服务获取授权码:
    Get请求:
    localhost:40400/auth/oauth/authorize?
    client_id=XcWebApp&response_type=code&scop=app&redirect_uri=http://localhost
    参数列表如下:
    client_id:客户端id,和授权配置类中设置的客户端id一致。
    response_type:授权码模式固定为code
    scop:客户端范围,和授权配置类中设置的scop一致。
    redirect_uri:跳转uri,当授权码申请成功后会跳转到此地址,并在后边带上code参数(授权码)。
    首先跳转到登录页面:

    启动认证服务

    端口是40400


    scope的设置,scope就是一个范围标识


    账号就是客户端的id,



    数据库内的这个client_secret是经过加密的。这个密码默认设置的和客户端一样 也就是 XcWebApp

    点击授权



    code就是授权码

     

    申请令牌

    拿到授权码后,申请令牌。
    Post请求:http://localhost:40400/auth/oauth/token
    参数如下:
    grant_type:授权类型,填写authorization_code,表示授权码模式
    code:授权码,就是刚刚获取的授权码,注意:授权码只使用一次就无效了,需要重新申请。
    redirect_uri:申请授权码时的跳转url,一定和申请授权码时用的redirect_uri一致。
    此链接需要使用 http Basic认证。
    什么是http Basic认证?
    http协议定义的一种认证方式,将客户端id和客户端密码按照“客户端ID:客户端密码”的格式拼接,并用base64编
    码,放在header中请求服务端,一个例子:
    Authorization:Basic WGNXZWJBcHA6WGNXZWJBcHA=
    WGNXZWJBcHA6WGNXZWJBcHA= 是用户名:密码的base64编码。
    认证失败服务端返回 401 Unauthorized
    以上测试使用postman完成:
    http basic认证:






    access_token:访问令牌,携带此令牌访问资源
    token_type:有MAC Token与Bearer Token两种类型,两种的校验算法不同,RFC 6750建议Oauth2采用 Bearer
    Token(http://www.rfcreader.com/#rfc6750)。
    refresh_token:刷新令牌,使用此令牌可以延长访问令牌的过期时间。
    expires_in:过期时间,单位为秒。
    scope:范围,与定义的客户端范围一致。



    目前为止完成了前四项



     

  • 相关阅读:
    leetcode 141 环形链表
    [转载]Tensorflow中reduction_indices 的用法
    SIFT特征原理与理解
    numpy切片和布尔型索引
    IPython的使用
    [文献阅读]基于卷积神经网络的高光谱图像深度特征提取与分类
    验证码校验
    防止表单重复提交
    MyBatis 一对一,一对多,多对多
    MySQL基础内容
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11631603.html
Copyright © 2011-2022 走看看