验证期间访问 JWT Token

Posted

技术标签:

【中文标题】验证期间访问 JWT Token【英文标题】:Accessing JWT Token during verification 【发布时间】:2015-02-13 01:58:42 【问题描述】:

我正在使用以下示例使用 Spring Cloud OAuth2 实现:

https://github.com/spring-cloud-samples/authserver

https://github.com/spring-cloud-samples/sso

第一个是 OAuth 服务器,它在对用户进行身份验证时生成 JWT 令牌。第二个是正在消耗的资源。该资源根据 OAuth 规范将用户的身份验证中继到 authserver。

一切似乎都运行良好,导致我提出其他问题:

    在authserver中,在认证过程中,如何获取clientId和clientSecret的访问权限? 我能否确定用于生成 JWT 令牌的值? 在 SSO 中,如何在用户通过身份验证后访问令牌的内容(例如主体)?

【问题讨论】:

【参考方案1】:

对 3) 的回答:将方法签名更改为包括:

@AuthenticationPrincipal  User principal

这样,身份验证凭据将传递给 Spring 调用的控制器方法。另一种方式是通过安全上下文:

SecurityContext securityContext = SecurityContextHolder.getContext(); 
Authentication authentication = securityContext.getAuthentication();

至于2),我的猜测是,为了影响用于计算JWT令牌的参数,需要实现一个自定义的AccessTokenConverter。如果我的理解是正确的,默认的 DefaultAccessTokenConverter 不允许这样做。我欢迎对此提出任何其他意见。

【讨论】:

以上是关于验证期间访问 JWT Token的主要内容,如果未能解决你的问题,请参考以下文章

使用JWT 进行基于 Token 的身份验证方法

Flask 学习-31.flask_jwt_extended 验证token四种方headers/cookies/json/query_string

基于Token的身份验证——JWT

token 创建与验证 (tp6)

基于Token的身份验证——JWT(转)

SpringBoot1SpringBoot整合JWT实现Token验证