Java 弹簧靴OAuth2示例

Java 弹簧靴OAuth2示例,java,mongodb,spring-boot,oauth-2.0,Java,Mongodb,Spring Boot,Oauth 2.0,我有一个使用MongoDB的Spring启动应用程序。我想使用OAuth2.0策略注册客户机,并将客户机id和客户机密钥存储在数据库中。我可以使用以下url中的一些虚拟客户端和密钥生成访问令牌: 我想知道如何在java代码中生成客户机id和密钥。非常感谢您的帮助。客户端ID和密码由服务提供商生成,以允许开发人员注册其应用程序并访问其API 有很多方法可以生成客户端id和客户端机密。这取决于您的选择 客户端id是应用程序的公共标识符。它应该是唯一的,并且不容易猜测。因此,您可以像一样使用32个字符

我有一个使用MongoDB的Spring启动应用程序。我想使用OAuth2.0策略注册客户机,并将客户机id和客户机密钥存储在数据库中。我可以使用以下url中的一些虚拟客户端和密钥生成访问令牌:


我想知道如何在java代码中生成客户机id和密钥。非常感谢您的帮助。

客户端ID和密码由服务提供商生成,以允许开发人员注册其应用程序并访问其API

有很多方法可以生成客户端id和客户端机密。这取决于您的选择

客户端id是应用程序的公共标识符。它应该是唯一的,并且不容易猜测。因此,您可以像一样使用32个字符的十六进制字符串、Guid、Guid+systemTime,还可以对其进行散列、加密或任何其他使其成为唯一标识符的操作。(您可以很容易地找到同样的java代码)

Client_secret是只有应用程序和 授权服务器。因此,您可以使用加密安全库生成256位值,并将其转换为十六进制表示形式。 您应该避免使用公共UUID库

此外,您不应以明文形式存储机密,而应仅存储加密或哈希版本,以帮助降低机密泄漏的可能性

下面是一些来自支持Oauth的服务的客户端ID示例:

Foursquare:ZYDPLLBWSK3MVQJSIYRF1OR2JXCY0X2C5UJ2QAR2MAAIT5Q

Github:6779ef20e75817b79602

谷歌:292085223830.apps.googleusercontent.com


Instagram:f2a1ed52710d4533bde25be6da03b6e3

为什么需要从访问令牌生成客户端id和密钥?用于获取访问令牌的客户端id和密钥。所以这可能是您真正需要的(如果我错了,请纠正我)是的,我需要我的java代码来生成客户端id和密钥,用于获取访问令牌。您不能只生成clientID和secret。或者更好地说,您可以这样做,但是由于您的授权服务器没有意识到这一点,所以它们没有任何意义。您需要首先在授权服务器中注册您的客户端。您可以分享一些示例或url来说明如何注册。我找不到任何有用的东西。