代码之家  ›  专栏  ›  技术社区  ›  Dac0d3r

使用存储在Golang自己数据库中的用户创建Google身份验证服务

  •  1
  • Dac0d3r  · 技术社区  · 7 年前

    • 在数据库中创建新用户
    • 如果在数据库中找到匹配的用户,请登录(如何确定不带密码的匹配?)

    {
        "iss":"accounts.google.com",
        "at_hash":"HK6E_P6Dh8Y93mRNtsDB1Q",
        "email_verified":"true",
        "sub":"10769150350006150715113082367",
        "azp":"1234987819200.apps.googleusercontent.com",
        "email":"jsmith@example.com",
        "aud":"1234987819200.apps.googleusercontent.com",
        "iat":1353601026,
        "exp":1353604926,
        "nonce": "0394852-3190485-2490358",
        "hd":"example.com"
    }
    

    如何处理与您自己的数据库的集成:

    您是否将令牌与电子邮件一起存储在用户表中?在这种情况下,如果令牌过期/更改该怎么办?安全性如何?

    我读过的大多数教程和文章都没有详细描述数据库部分。

    1 回复  |  直到 7 年前
        1
  •  1
  •   eugenioy    7 年前

    如果在数据库中找到匹配的用户,请登录(如何确定不带密码的匹配?)

    不,他们不能,否则这根本没用。

    如何安全地验证这一点

    https://developers.google.com/identity/sign-in/web/backend-auth

    “验证ID令牌的完整性”一节讨论了如何通过自己或调用外部端点来实现这一点。

    你只需要存储用户的令牌,如果除了认证他们,你计划使用谷歌的API代表用户。

    请参见此处: https://developers.google.com/identity/protocols/OAuth2