- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想查询我的 Redis 服务器以获取用户名的匹配密码。我怎样才能做到这一点?我对 Redis 和 Node 的经验都很少,所以我找不到存储这些的 key 。
非常感谢任何帮助!
最佳答案
查看文件/src/routes/authentication.js。你有 Auth.login 函数,它获取用户名、密码作为参数。然后你在用户对象上有 getUidByUserslug 函数,它首先被调用并从名为 'userslug:uid' 的 redis 哈希返回你的用户 ID (_uid)(查看/src/user .js 文件 db.getObjectField('userslug:uid', userslug, callback); 函数)。下一步是通过用户 ID 从 'user:' + uid 哈希获取用户,存储在 redis 中。这是使用 db.getObjectFields('user:' + uid, ['password', 'banned'], next); authenticate.js 文件中的函数。
以下是Auth.login函数:
Auth.login = function(req, username, password, next) {
if (!username || !password) {
return next(new Error('[[error:invalid-password]]'));
}
var userslug = utils.slugify(username);
var uid;
async.waterfall([
function(next) {
user.getUidByUserslug(userslug, next);
},
function(_uid, next) {
if (!_uid) {
return next(new Error('[[error:no-user]]'));
}
uid = _uid;
user.auth.logAttempt(uid, req.ip, next);
},
function(next) {
db.getObjectFields('user:' + uid, ['password', 'banned'], next);
},
function(userData, next) {
if (!userData || !userData.password) {
return next(new Error('[[error:invalid-user-data]]'));
}
if (userData.banned && parseInt(userData.banned, 10) === 1) {
return next(new Error('[[error:user-banned]]'));
}
Password.compare(password, userData.password, next);
},
function(passwordMatch, next) {
if (!passwordMatch) {
return next(new Error('[[error:invalid-password]]'));
}
user.auth.clearLoginAttempts(uid);
next(null, {uid: uid}, '[[success:authentication-successful]]');
}
], next);
};
关于node.js - NodeBB (Redis) 找回用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29340174/
我正在使用 Scrapy 1.5.1 和 Python 2.7.6。我正在尝试从以下 page 中抓取用户名. 我已经实现了以下代码: # -*- coding: utf-8 -*- import s
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我是一名优秀的程序员,十分优秀!