【问题标题】:Spring boot OAuth2 sampleSpring Boot OAuth2 示例
【发布时间】:2017-11-24 11:39:55
【问题描述】:

我有一个带有 MongoDB 的 Spring-Boot 应用程序。我想使用 OAuth2.0 策略注册客户端并将客户端 ID 和客户端密钥存储在数据库中。我可以使用以下 url 中的一些虚拟客户端和密钥来生成访问令牌:http://websystique.com/spring-security/secure-spring-rest-api-using-oauth2/

我想知道如何在我的 java 代码中生成客户端 ID 和密钥。任何帮助表示赞赏。

【问题讨论】:

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

标签: java mongodb spring-boot oauth-2.0


【解决方案1】:

客户端 ID 和密钥由服务提供商生成,以便开发人员注册他们的应用程序并访问他们的 API。

Client_id 和 Client secret 的生成方式有很多种。这取决于您的选择。

Client_id 是应用程序的公共标识符。它应该是唯一的并且不容易猜到。因此,您可以使用 32 个字符的十六进制字符串、Guid、Guid + systemTime,也可以对其进行散列、加密 或任何其他您想要使其成为唯一标识符的东西。 (你会很容易找到相同的java代码)

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

此外,您不应以纯文本形式存储秘密,而应仅存储加密或散列版本,以帮助减少秘密泄露的可能性。

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

四方:ZYDPLLBWSK3MVQJSIYRF1OR2JXCY0X2C5UJ2QAR2MAAIT5Q

Github:6779ef20e75817b79602

谷歌:292085223830.apps.googleusercontent.com

Instagram:f2a1ed52710d4533bde25be6da03b6e3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-12
    • 2017-09-11
    • 2018-08-13
    • 2020-10-25
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多