不同注册平台的数据模型/架构

时间:2019-04-11 13:43:37

标签: node.js database mongodb oauth schema

当我创建带有表达的 USER 数据 模型/架构 时,我总是将名称,电子邮件地址和密码描述为必填字段,并且在执行操作时在注册中自定义构建也可以。但是,当我使用GOOGLE或FACEBOOK添加第三方登录时,这些平台不会给我密码(但这是我的数据模型所必需的)。我应该如何解决这个体系结构问题?我应该使用哪些令牌,“ json-web-tokens” 和Google访问令牌以不同的方式工作,那么要使用什么令牌?谷歌用户可以使用内置的“ json-web-tokens”吗?

我想出了一些不好的解决方案:

x 为不同的平台创建不同的模型。 //将很难管理所有模型,并且某些模型将需要不同的请求路由。

x 为用户生成长而困难的密码。

const mongoose = require('mongoose');

const userSchema = mongoose.Schema({
    name: {type: String, required: true, min : 3},
    email: {
        type: String,
        required: true,
        unique: true,
        match: /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/,

    },
    password: {type: String, required: true, min : 8}
});

module.exports = mongoose.model('User', userSchema);

因此,我的目的是了解解决此问题方案/模型数据问题的通用和最佳解决方案是什么?简单的USER和google或facebook的USER应该请求相同的路线?以及在实现“ jwt” 但从Google或Facebook获取 acces_token 时要使用的令牌。

谢谢您的回答!

0 个答案:

没有答案