我有一个MongoDB的Spring-Boot应用程序。我想使用OAuth2.0策略注册客户端,并在客户端ID和客户端密钥存储在数据库中。我可以使用以下网址中的一些虚拟客户端和密钥生成访问令牌:http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/
我想知道如何在我的java代码中生成客户端ID和密钥。任何帮助表示赞赏。
答案 0 :(得分:0)
服务提供商生成客户端ID和密码,让开发人员注册他们的应用程序并访问他们的API。
有很多方法可以生成Client_id和Client secret.It取决于您的选择。
Client_id是app的公共标识符。它应该是唯一且不容易猜到。所以你可以使用像一个32个字符的十六进制字符串,Guid,Guid + systemTime,你也可以哈希它,加密它或任何你想让它成为唯一标识符的东西。 (你会很容易找到相同的java代码)
Client_secret是一个只有应用程序才知道的秘密 授权服务器。因此,您可以使用加密安全库来生成256位值并将其转换为十六进制表示。 您应该避免使用常见的UUID库。
此外,您不应以纯文本格式存储密码,而应仅存储加密或散列版本,以帮助降低秘密泄露的可能性。
以下是来自支持Oauth的服务的客户端ID的一些示例:
Foursquare:ZYDPLLBWSK3MVQJSIYRF1OR2JXCY0X2C5UJ2QAR2MAAIT5Q
Github:6779ef20e75817b79602
Google:292085223830.apps.googleusercontent.com
Instagram:f2a1ed52710d4533bde25be6da03b6e3