我正在尝试在我的微服务中实现基于JWT的令牌管理。我正在使用spring boot来开发服务。目前,我使用令牌创建并向我的前端角度应用程序发送响应。在这里,我只添加了主张和主题。
我的代码是这样的:
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列表的声明。我的困惑是,如何添加有关此结构或声明的用户的更多数据?
任何人都可以帮助我澄清我的困惑吗?
答案 0 :(得分:1)
JWT的目的是简单地对用户进行身份验证,我们不需要用JWT填充数据,因为如果验证了这一点,我们可以使用用户名查询我们需要的任何数据库。 我在expressjs中使用护照,我只是使用我的ID或用户名(两个唯一标识符)生成一个JWT,然后在我的Auth标头中按下请求,我的expressjs验证签名,如果是,我可以使用该标识符(用户名或ID) )放心地,用户自己提出了这个请求,在实际查询中检查用户权限,角色等,而不是在JWT中传递它
答案 1 :(得分:0)
您可以根据需要添加任意数量的声明。您可以通过再次调用声明来做到这一点。
import difflib
file1 = 'file1.txt'
file2 = 'file2.txt'
df_file = 'diffresult.txt'
def read():
with open(file1, 'r') as f1, open(file2, 'r') as f2, open(df_file, 'w') as fw:
f1_text = f1.readlines()
f2_text = f2.readlines()
for line in difflib.ndiff(f1_text, f2_text):
if line.startswith('- '):
fw.write(line[2:])
def fetchdiff():
with open(df_file, 'r') as f:
for line in f.readlines():
print(line)
if __name__ == '__main__':
read()
fetchdiff()