Ste*_*eve 5 oauth mongoose node.js passport.js keystonejs
我在我的项目中使用KeystoneJS的Passport身份验证插件.
如果用户帐户存在并且与所使用的社交网络绑定,则一切都很有效.但是,在创建新用户时,使用config选项'auto create user': true,我最终会在oauth回调路由上出现500错误.日志说它是验证错误.
ValidationError: Validation failed
at model.Document.invalidate (/app/node_modules/keystone/node_modules/mongoose/lib/document.js:1021:32)
at /app/node_modules/keystone/node_modules/mongoose/lib/document.js:970:16
at validate (/app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:610:7)
at /app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:627:9
at Array.forEach (native)
at SchemaString.SchemaType.doValidate (/app/node_modules/keystone/node_modules/mongoose/lib/schematype.js:614:19)
at /app/node_modules/keystone/node_modules/mongoose/lib/document.js:968:9
at process._tickCallback (node.js:419:13)
Run Code Online (Sandbox Code Playgroud)
可能是什么导致了这个?
编辑
用户模型:
var keystone = require('keystone'),
Types = keystone.Field.Types,
social = require('keystone-social-login');
/**
* User Model
* ==========
*/
var User = new keystone.List('User');
User.add({
name: { type: Types.Name, required: true, index: true },
email: { type: Types.Email, initial: true, required: true, index: true },
password: { type: Types.Password, initial: true, required: true }
}, 'Permissions', {
userLevel: { type: Types.Select, options: 'user, business, admin', default: 'user', initial: true }
});
// Provide access to Keystone
User.schema.virtual('canAccessKeystone').get(function() {
return this.userLevel === 'admin';
});
/**
* Registration
*/
social.plugin(User);
User.defaultColumns = 'name, email, userLevel';
User.register();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |