当我创建带有表达的 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 时要使用的令牌。
谢谢您的回答!