从0构建Oauth2Server服务之Refreshing-access-tokens

 更新时间:2023年08月15日 10:41:45   作者:demo007x  
这篇文章主要为大家介绍了从0构建Oauth2Server服务之Refreshing-access-tokens刷新令牌示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

刷新令牌 Refreshing-access-tokens

如何让您的开发人员使用刷新令牌来获取新的访问令牌。如果您的服务随访问令牌一起发出刷新令牌,则您需要实现此处描述的刷新授权类型。

请求参数

访问令牌请求将包含以下参数。

grant_type(必需的)

grant_type参数必须设置为“refresh_token”。

refresh_token(必需的)

先前颁发给客户端的刷新令牌。

scope(选修的)

请求的范围不得包括未在原始访问令牌中发布的其他范围。通常这不会包含在请求中,如果省略,服务应该发出一个与之前发出的范围相同的访问令牌。

客户端身份验证(如果客户端被授予机密则需要)

通常,刷新令牌仅用于机密客户端。但是,由于可以在没有客户端密码的情况下使用授权代码流,因此没有密码的客户端也可以使用刷新授权。如果向客户端发出了一个秘密,则客户端必须对该请求进行身份验证。通常,该服务将允许附加请求参数client_idclient_secret,或者接受 HTTP 基本身份验证标头中的客户端 ID 和密码。如果客户端没有密码,则此请求中不会出现客户端身份验证。

验证刷新令牌授予

在检查了所有必需的参数并验证了客户端(如果向客户端发出了秘密)之后,授权服务器可以继续验证请求的其他部分。

然后服务器检查刷新令牌是否有效,并且没有过期。如果刷新令牌已颁发给机密客户端,则服务必须确保请求中的刷新令牌已颁发给经过身份验证的客户端。

如果一切正常,该服务可以生成访问令牌并做出响应。服务器可能会在响应中发出新的刷新令牌,但如果响应不包含新的刷新令牌,则客户端会假定现有的刷新令牌仍然有效。

例子

以下是服务将接收的刷新授权示例。

POST /oauth/token HTTP/1.1
Host: authorization-server.com
grant_type=refresh_token
&refresh_token=xxxxxxxxxxx
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx

Response

对刷新令牌授予的响应与发出访问令牌时的响应相同。您可以选择在响应中发出新的刷新令牌,或者如果您不包含新的刷新令牌,则客户端假定当前的刷新令牌将继续有效。

以上就是从0构建Oauth2Server服务之Refreshing-access-tokens的详细内容,更多关于Oauth2Server服务构建的资料请关注脚本之家其它相关文章!

相关文章

  • MyBatis-Plus实现连表查询的方法实例

    MyBatis-Plus实现连表查询的方法实例

    这篇文章主要给大家介绍了关于MyBatis-Plus实现连表查询的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • Java实现截取字符串的操作详解

    Java实现截取字符串的操作详解

    在这篇文章中,小编将带大家一起学习一下在Java中把一个String截断到所需的字符数的几种方法,文中的方法简洁易懂,需要的可以参考一下
    2022-07-07
  • java String源码和String常量池的全面解析

    java String源码和String常量池的全面解析

    下面小编就为大家分享一篇java String源码和String常量池的全面解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • 浅谈Java虚拟机对内部锁的四种优化方式

    浅谈Java虚拟机对内部锁的四种优化方式

    这篇文章主要介绍了浅谈Java虚拟机对内部锁的四种优化方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Spring获取当前类在容器中的beanname实现思路

    Spring获取当前类在容器中的beanname实现思路

    这篇文章主要介绍了Spring获取当前类在容器中的beanname,实现思路只需继承BeanNameAware接口,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • MyBatis中#号与美元符号的区别

    MyBatis中#号与美元符号的区别

    #{变量名}可以进行预编译、类型匹配等操作,#{变量名}会转化为jdbc的类型。很多朋友不清楚在mybatis中#号与美元符号的不同,接下来通过本文给大家介绍两者的区别,感兴趣的朋友参考下吧
    2017-01-01
  • 如何基于SpringBoot部署外部Tomcat过程解析

    如何基于SpringBoot部署外部Tomcat过程解析

    这篇文章主要介绍了SpringBoot以war包形式部署到外部Tomcat过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • SpringBoot统一api返回风格的实现

    SpringBoot统一api返回风格的实现

    这篇文章主要介绍了SpringBoot统一api返回风格的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • IDEA中Git的基本应用详解

    IDEA中Git的基本应用详解

    这篇文章主要介绍了IDEA中Git的基本应用详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Java泛型和Class类用法示例

    Java泛型和Class类用法示例

    这篇文章主要介绍了Java泛型和Class类用法,结合实例形式分析了java使用泛型限制class类避免强制类型转换相关操作技巧,需要的朋友可以参考下
    2019-07-07

最新评论