我正在使用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);