验证期间访问 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的主要内容,如果未能解决你的问题,请参考以下文章
Flask 学习-31.flask_jwt_extended 验证token四种方headers/cookies/json/query_string