跳到主要内容
CNode

keystone的signin怎么验证用户名和密码的?

问答
CChalin-Shi发布于 11 年前最后回复 11 年前
859000

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

csrf.js 129.png

查看回复

回复 (8)

L
LeafInStrom#811 年前
引用 Chalin-Shi@LeafInStrom 哥们,你好。问一下keystone数据模型里某个字段数据类型可以为数组吗?他的Types没有。

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

C
Chalin-Shi#711 年前
引用 LeafInStrom@Chalin Shi 自己写的 核心也是用的keystone的机制

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

L
LeafInStrom#611 年前
引用 Chalin-Shi@LeafInStrom 这是你自己写的还是keystone本身就有的啊?

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

C
Chalin-Shi#511 年前
引用 LeafInStromuserTmp. .password.compare 重点是这个

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

C
Chalin-Shi#411 年前
L
LeafInStrom#311 年前

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

L
LeafInStrom#211 年前
引用 Chalin-Shi@LeafInStrom @bendise

@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]);
					});
				});

这样就行了

C
Chalin-Shi#111 年前

@LeafInStrom @bendise

参与回复

登录后即可参与回复。登录