Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向我的web应用程序添加双因素身份验证_Java_Spring_Two Factor Authentication - Fatal编程技术网

Java 向我的web应用程序添加双因素身份验证

Java 向我的web应用程序添加双因素身份验证,java,spring,two-factor-authentication,Java,Spring,Two Factor Authentication,我有一个JavaSpringWeb应用程序,目前它有一个正常的身份验证流。我需要向它添加一个双因素身份验证实现。为此,我们可以使用第三方提供商,如谷歌或任何其他提供商 我需要向[我的java spring web应用程序]添加一个双因素身份验证实现 下面是一个在Java代码中实现2FA/双因素身份验证的示例 从READ_ME中复制,以使其适用于您: 正确地为随机数生成器设置种子 使用generateBase32Secret()为用户生成密钥 将密钥存储在与用户帐户关联的数据库中 显示由qrIma

我有一个JavaSpringWeb应用程序,目前它有一个正常的身份验证流。我需要向它添加一个双因素身份验证实现。为此,我们可以使用第三方提供商,如谷歌或任何其他提供商

我需要向[我的java spring web应用程序]添加一个双因素身份验证实现

下面是一个在Java代码中实现2FA/双因素身份验证的示例

从READ_ME中复制,以使其适用于您:

  • 正确地为随机数生成器设置种子
  • 使用
    generateBase32Secret()
    为用户生成密钥
  • 将密钥存储在与用户帐户关联的数据库中
  • 显示由
    qrImageUrl(…)
    返回给用户的QR图像URL
  • 用户使用图像将密钥加载到其验证器应用程序中
  • 每当用户登录时:

  • 用户从authenticator应用程序将号码输入登录表单
  • 从数据库中读取与用户帐户关联的机密
  • 服务器将用户输入与
    generateCurrentNumber(…)
    的输出进行比较
  • 如果它们相等,则允许用户登录

  • 请阅读指南,特别是关于最小、完整和可验证示例(MCVE)的部分。这将帮助你自己解决问题。如果您这样做了,但仍然陷入困境,您可以回来发布您的MCVE,您尝试了什么,以及结果如何,以便我们能够更好地帮助您。@JeffC阅读了很多文章,但找不到解决方案。最后,我决定发帖子到stackoverflow寻求帮助。至少如果我能得到一个简单的指南或起点,我就能领先一步。这个解决方案与商业产品(如Stormpath提供的产品)有何不同?呃,它是免费的,开源的?否则我不确定@PradeepKumarTR。我唯一不喜欢的是你把私钥保存在一个数据库中……天哪@DamirOlejar。这只是一个例子。“你认为它在现实中是如何运作的?”格雷,对不起,我正在寻找最终的解决办法。你建议我们做什么?我正在考虑使用AES并将私钥存储在配置中,然后将加密版本保存在DB中。对此仍有疑问。