gpt4 book ai didi

java - 使用 numbus 库更新 JWT token 字段

转载 作者:行者123 更新时间:2023-11-30 06:45:38 25 4
gpt4 key购买 nike

我有一个签名的 JWT token ,我需要更新现有字段,我们将其称为 userName。我正在使用 NIMBUS + JOSE 和。我想出了如何解析它并提取声明:

SignedJWT.parse(token)

但解析并不是我唯一需要的:我已经更新了该字段并重新组装了它的 token 。是否有一种简单的方法或任何惯用的解决方案可以在无需从头开始重新创建 token 的情况下工作。

最佳答案

我花了一些时间尝试弄清楚如何使用该库修改 JWT token 。我使用了一个快速但肮脏的解决方案:

// Split token into parts (parts are separated with '.'
final String[] tokenParts = token.split("\\.");

// decode payload part
final String decodedPayload =
new String(Base64.getDecoder().decode(tokenParts[1]), "UTF-8");

// enrich payload with additional userName field by adding it to the end of
// JSON. Remove the last character which is '}' and append data as String
final String updatedDecodedPayload =
decodedPayload.substring(0, decodedPayload.length() - 1)
+ ",\"userName\":\"" + "Richard" + "\"}";


// update payload with userId field and encode it back to base64
tokenParts[1] = Base64.getEncoder().encodeToString(
updatedDecodedPayload.getBytes()
);

final String updatedToken = String.join(".", tokenParts));

关于java - 使用 numbus 库更新 JWT token 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43724146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com