首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用弹簧引导自定义Oauth2+JWT令牌响应

用弹簧引导自定义Oauth2+JWT令牌响应
EN

Stack Overflow用户
提问于 2022-11-30 09:44:51
回答 1查看 38关注 0票数 0

我在我的一个项目中使用Oauth2+JWT+Spring安全性。当我使用用户名/密码访问/茅斯/令牌时,我将在响应中接收访问令牌,其他详细信息如下

代码语言:javascript
复制
{
    "access_token": <token>,
    "token_type": <type>,
    "refresh_token": <refresh-token>,
    "expires_in":<secs>,
    "scope": <scope>,
    "jti": <value>
}

是否可以自定义此响应,如

代码语言:javascript
复制
{
    data: {
         "access_token": <token>,
         "token_type": <type>,
         "refresh_token": <refresh-token>,
         "expires_in":<secs>,
         "scope": <scope>,
         "jti": <value>
       },
  details:{
//extra information 
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-12-02 00:39:38

我很困惑,不知道如何更清楚地问:“您想发送的附加数据是什么?”给出一个明确的样本。

我将回答猜测,这些数据与授权实体(在授权代码流中回答时的用户和客户端凭据流中的客户端)有关:非标准数据应该设置为私有的-claims,在JWT本身和令牌内省端点上。

如何添加这样的私有声明取决于您的授权服务器。对于春季安全机制,这是通过OAuth2TokenCustomizer完成的。对于Keycloak,您必须提供一个“映射器”,等等。

收到像您显示的有效负载的客户端,只在向资源服务器发出请求时才发送访问令牌。重要的是,此令牌保存资源访问决策所需的所有数据。有些声明是由OAuth2指定的,OpenID定义了一些更标准的声明,您可以在私有索赔中放置任何附加数据(在最大令牌大小的范围内)。

另外,如果客户端需要读取声明,它应该使用ID令牌,而不是访问令牌(在启动openid流时请求OAuth2范围)。访问令牌只应由资源服务器解释.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74625632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档