gpt4 book ai didi

google-signin - 使用 Google 登录 - 我应该如何处理 `nonce` ?

转载 作者:行者123 更新时间:2023-12-03 08:16:14 24 4
gpt4 key购买 nike

我现在在做什么:

  1. 使用JavaScript API在我的网页上呈现按钮。
  2. 当“使用 Google 登录”流程完成后,将调用我的客户端 JavaScript 回调。
  3. 该回调将给定的 .credentials 字符串发送到我的服务器。
  4. 后端服务器(Node.js)调用google-auth-library库的 .credentials 字符串上的 OAuth2Client.verifyIdtoken 方法,该方法返回用户的电子邮件地址(以及其他内容),我的服务器使用该方法来验证用户并创建 session 。

一切正常,但我想知道我是否遗漏了任何安全问题。特别是有一个 nonce 字段。文档 ( link ) 没有解释如何使用它。

注意:我正在使用 "Sign in with Google"而不是已弃用的 "Google Sign-In" .

编辑:我熟悉随机数的概念,并且在自己执行 OAuth 2 服务器端流程时使用过它们。我不明白的是,使用 Google SDK 登录如何期望我在上面的流程中使用其 nonce 参数,其中我使用了他们的客户端和服务器端 SDK。

最佳答案

Nonces 被用作 CSRF 预防方法。当您向 Google 发出请求时,您会包含一个随机数,身份验证完成后,Google 将发回相同的随机数。此方法的神奇之处在于,如果随机数与您发送的内容不匹配,那么您可以忽略响应,因为它可能是欺骗的。

在此处了解有关 CSRF 的更多信息:https://owasp.org/www-community/attacks/csrf

随机数通常是加密安全的随机字符串/字节。

我使用crypto-random-string作为生成随机数的基础,但任何具有此功能的包都应该足够了。

有时我会在 Redis 中存储带有 TTL 的随机数,但其他时候我会存储带有附加到请求的 ID 的随机数,以便稍后验证它。

我告诉你这一点是因为我花了一点时间才弄清楚这个随机数:P

关于google-signin - 使用 Google 登录 - 我应该如何处理 `nonce` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69292771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com