当前位置: 首页 > 知识库问答 >
问题:

每个客户端的 OAuth2 不同令牌过期时间

龙正初
2023-03-14

我正在使用 spring-security-oauth2 来实现我的 OAuth2 授权服务器。spring-security-oauth2 即将消失,我知道我需要用 spring-authorization-server 替换它

问:是否可以为不同的客户端设置不同的令牌到期时间(此处客户端表示客户端 ID/客户端密钥对)?

如果是,您能否分享有关 spring-authorization 服务器的文档/示例代码

如果不是,它是Spring-授权-服务器的限制还是OAuth2规范不允许?

(澄清一下,我并不是说这是可能的,在Spring-安全-开放2,如果它是我也想知道)

共有1个答案

简嘉赐
2023-03-14

是的,每个客户端可以有不同的过期时间。您将使用每个RegisteredClient标记设置,如下例所示:

RegisteredClient registeredClient = RegisteredClient.withId(UUID.randomUUID().toString())
                .clientId("messaging-client")
                .clientSecret("{noop}secret")
                .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC)
                .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE)
                .authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN)
                .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
                .redirectUri("http://127.0.0.1:8080/login/oauth2/code/messaging-client-oidc")
                .redirectUri("http://127.0.0.1:8080/authorized")
                .scope(OidcScopes.OPENID)
                .scope("message.read")
                .scope("message.write")
                .tokenSettings(TokenSettings.builder()
                        .accessTokenTimeToLive(Duration.ofMinutes(5))
                        .refreshTokenTimeToLive(Duration.ofHours(2))
                        .build())
                .clientSettings(ClientSettings.builder().requireAuthorizationConsent(true).build())
                .build();

有关完整上下文,请参见示例配置。

 类似资料:
  • 我有一个使用Passport身份验证的Laravel应用程序。 登录 我已解决AuthServiceProvider的到期问题: 它的工作原理,但1分钟后令牌过期。我想要一个不同的令牌到期日,这取决于我试图登录的地方,因为我有一个网站,桌面应用程序和一个Android应用程序。 例如: 网络应用程序:8小时 我想从我尝试登录的地方发送给我,但这是一个好方法吗?还有其他可能的方法吗? 现在我已经尝试

  • 我正在开发一个angularjs网络应用。 要访问服务器端api,我需要添加一个id_token头,并通过使用接收id_token。 问题的关键是——id_token有一个过期日期。在访问服务器应用编程接口之前,我需要确保id_token还没有过期,但是如果是,显而易见的选择是刷新它。 有没有办法刷新id_令牌? 我知道我可以将访问类型更改为脱机,并接收刷新令牌,但请求脱机访问似乎很奇怪,而在我的

  • 我很难在Spring中做这个简单的事情:当访问令牌过期时重定向到登录页面。 null 根据我的理解,资源服务器应该是处理这种机制的服务器(如果我错了请纠正我)。 我一直在尝试不同的不成功的方法: 在OAuth2AuthenticationProcessingFilter之后添加筛选器并检查令牌有效性和sendRedirect 向我的应用程序添加自定义OAuth2AuthenticationEntr

  • google oauth2刷新令牌何时过期? 我所说的过期是指过期是因为经过了某个时间跨度(不是因为用户已撤销访问权限或用户已请求新的刷新令牌) 我做了一些研究,没有一个引用官方的谷歌文档(我也找不到一个有效的谷歌文档) 其他一些问题表示,由于时间,它从未过期: 谷歌刷新令牌过期了吗? https://community.fitbit.com/t5/web-api-development/inva

  • (联系人和日历有不同的代币) 同步脚本: $AccesStoken是一个序列化字符串,如下所示: 我做错了什么? 有趣的是,对于联系人来说,同步一直都很好(访问令牌的属性与日历同步中的属性相同)