keystone的signin怎么验证用户名和密码的?
发布于 9 年前 作者 Chalin-Shi 5098 次浏览 最后一次编辑是 8 年前 来自 问答

内容如题,没见到取用户信息啊?图见下: signin.js 12.png

csrf.js 129.png

8 回复

@Chalin-Shi

			User.model.findOne({email: params.email})
				.exec(function (err, userTmp) {
					var error = new Error('it failed');
					if (err) {
						error.statusCode = 500;
						error.output = {message: "数据库出错", more: err};
						return callback(error);
					}
					if (!userTmp) {
						error.statusCode = 404;
						error.output = {message: "用户不存在", more: params.email};
						return callback(error);
					}
					userTmp._.password.compare(params.password, function (err, isMatch) {
						if (err) {
							log(err);
						}
						if (!isMatch) {
							error.statusCode = 400;
							error.output = {message: "密码错误", more: ''};
							return callback(error);
						}
						if (!userTmp.isAdmin) {
							error.statusCode = 400;
							error.output = {message: "没有权限", more: ''};
							return callback(error);
						}
						req.session.userId = userTmp._id;
						return callback(null, db.users4App(userTmp)[0]);
					});
				});

这样就行了

userTmp._.password.compare 重点是这个

@LeafInStrom 这是你自己写的还是keystone本身就有的啊?

@Chalin-Shi 自己写的 核心也是用的keystone的机制

@LeafInStrom 哥们,你好。问一下keystone数据模型里某个字段数据类型可以为数组吗?他的Types没有。

@Chalin-Shi Types.NumberArray Types.StringArray 但是目前没有对象数组,只能自己调用mongoose的scheme来添加,0.4版本的会添加ObjectArray,其实已经写好了,但是因为0.4还处于开发状态没有merge而已,

回到顶部