我正在使用Apache Oltu框架实现OAuth 2.0提供者服务器,并寻求一些关于如何在Java中生成访问令牌和密钥令牌的想法。请建议。
OAuth 2.0 规范 没有说明如何生成令牌和密钥令牌。因此,您可以使用现有/锚定数据来生成令牌,也可以使用随机序列来生成令牌。唯一的区别是,如果您使用预先知道的数据(例如用户数据,比如用户名、创建日期等),则可以随时恢复令牌。如果使用随机的数据序列,则一旦令牌丢失,就无法恢复。
换句话说,RFC 不限制您的生成过程。
我可能会使用用户详细信息数据加上一些随机数据进行字符串拼接,然后进行 Base64 编码。
String keySource = username + creationDate + random;
byte [] tokenByte = new Base64(true).encodeBase64(keySource.getBytes());
String token = new String(tokenByte);