mysql - OAUTH2 用户 ID 是如何生成的?

标签 mysql oauth-2.0 passport.js

我一直在学习如何使用 Passport.js 使用 Facebook 和 Google 登录,以下是他们提供的典型用户对象的方式:

{
    id: "1234567",
    displayName: "John Smith",
    name: {
        familyName: "Smith",
        givenName: "John"
    }

    // emails, photos, etc.
}

现在,我试图了解 id 字段是如何生成的,以及它们为何在不同的登录提供商中是唯一的。它似乎不是一个 UUID。

用户被保存到 MySQL 数据库中,其 id 作为主键;我正在尝试实现常规用户名/密码登录,因此我需要生成自己的 id

最佳答案

Facebook 和 Google ID 几年前就不再那么有趣了。您不应将该 ID 用作“真实”或 UUID 标识符。

是的,你是对的,如果你想要 SSO,你必须生成自己的 ID,并保存其他“外部”ID。对于你自己的id,我推荐你一个简单的mysql自动增量id用于PK。 Take care of this is you need to scale it .

如果你必须公开你自己的id,你需要有你自己的“外部”id,also take care of the security requirements of this .

最后,OAuth2没有说明任何有关用户 ID 格式的信息。

最好!

关于mysql - OAUTH2 用户 ID 是如何生成的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45428069/

相关文章:

mysql - 全文搜索不适用于 mysql 中的 varchar

php - 尝试通过PDO连接数据库,为什么无法连接成功?

php - Laravel count Eloquent belongsToMany 相关模型

javascript - 谷歌浏览器扩展程序 : How to find out if a user has signed in to the Chrome browser?

java - 轻松访问 google plus 个人资料信息

MySQL:搜索一个字段,然后替换同一行中的另一个字段

oauth - Outlook Office 365 : Refresh token failed to retrieve because "AADSTS70000" the provided value for the 'code' parameter is not valid

node.js - 我如何使用 passport-local.js 存储其他表单字段

javascript - NodeJS 不喜欢通行证 + Sequelize 登录

node.js - 将用户保存到 MongoDB 的 Passport Facebook 策略