java - 在 Spring Boot 微服务中的 JWT token 中添加多个声明

标签 java spring-boot jwt

我正在尝试在我的微服务中实现基于 JWT 的 token 管理。我正在使用 Spring Boot 来开发服务。目前,我使用 token 创建并发送响应到我的前端角度应用程序。这里我只添加了声明和主题。

我的代码是这样的:

public String generateUiaToken(String encodedSecret, Users uiaToken) {
    List<Integer> roleIdList = roleRepo.findRoleById((int) uiaToken.id);
    return Jwts.builder()
            .setId(UUID.randomUUID().toString())
            .setSubject(uiaToken.getUsername())
            .signWith(SignatureAlgorithm.HS512, encodedSecret)
            .claim("Role_List", roleIdList)
            .compact();
}

这里我添加了带有 JSON 角色 ID 列表的声明。如何添加有关具有此结构或声明的用户的更多数据?

最佳答案

您可以根据需要添加任意数量的声明。您可以通过再次调用声明来完成此操作。

Jwts.builder()
        .setId(UUID.randomUUID().toString())
        .setSubject(uiaToken.getUsername())
        .signWith(SignatureAlgorithm.HS512, encodedSecret)
        .claim("Role_List", roleIdList)
        .claim("abc", abcValue)
        .claim("asasas", asasas)
        .compact()

关于java - 在 Spring Boot 微服务中的 JWT token 中添加多个声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884073/

相关文章:

java - 插入和选择阿拉伯语数据 Android SQLite

java - 尝试使用 thymeleaf 进行 Spring Boot 表单验证,但出现我无法弄清楚的错误

java - 如何使用 JPQL 获取 SELECT 操作的第一行?

java - 微服务实例间JPA同步

Javascript 检查 token 中的日期是否已过期

c# - .net core - Jwt 中间件身份验证签名 key 被忽略

java - 理解 Gui 和 Listeners

Java2D 与 Javafx Canvas 性能对比

java - 相同的元素被插入到java中的LinkedList中

ios - 可以使用 iOS 和 Rails API 应用程序将 token 和密码存储在 iOS 钥匙串(keychain)中吗?