0
私はfeathersJsには新しく、フックとサービスを使って認証を実行する方法を学ぼうとしています。私はCouchdbデータベースとクレードルを使用しています。 これは、 "users"フックサービスを使用してhashPasswordでパスワードを暗号化するpostメソッドです。 postメソッドは以下の通りです:羽毛のパスワードを解読して確認する方法js
app.post('/dev',function(req,res,next){
var username = req.body.username;
var password = req.body.password;
app.service('database').create({username,password}).then(user => {
db.save(user, function (err, docs) {
// Handle response
res.json(docs);
});
console.log('User Created Successfully.', user);
}).catch(console.error);
})
とサービスされています。今、私はデータをretriveするためにこれを使用しています
app.service('authentication').hooks({
before: {
create: [
// You can chain multiple strategies
auth.hooks.authenticate(['jwt', 'local'])
],
remove: [
auth.hooks.authenticate('jwt')
]
}
});
app.service('database').hooks({
before: {
find: [
auth.hooks.authenticate('jwt')
],
create: [
local.hooks.hashPassword({ passwordField: 'password' })
]
}
});
:
app.post('/devget',function(req,res,next){
var User = {
username: req.body.username,
password: req.body.password
};
app.service('dataget').find(User).then(user => {
db.view('byuser/user',{key: User.username}, function (err, docs) {
// Handle response
res.json(docs);
});
console.log('User Get Successfully.', user);
}).catch(console.error);
})
が、これは私のように応答して、データを提供します:
Response [
{ id: '060ab48a4826da7125d8ae45350037ee',
key: 'w',
value:
{ _id: '060ab48a4826da7125d8ae45350037ee',
_rev: '1-ea9a18d3724ce4542019dc5752c1fd4d',
username: 'w',
password: '$2a$10$yBJVJTmVXfTk0V4CCiWkd.GvAZZB9dF2pckKJ9wb/lJcAK8Ou.v06',
id: 0 } } ]
これはうまく動作します単語は暗号化されていますが、パスワードを復号化してユーザーを認証する方法がわかりません。
注:フックやサービス、カスタムサービスやクラスではなく、パスポートを使用しないでください。
user [feathers-authentication](https://github.com/feathersjs/feathers-authentication)でユーザーを認証できます。あなた自身のパスワードを作成する場合は、自分自身のパスワードハッシュを利用することをお勧めします。しかし、あなたが羽毛を使用する場合、あなたのパスワードをここでどのようにハッシュするかを確認してください(https://github.com/feathersjs/feathers-authentication-local/blob/master/src/utils/hash.js)。 – Jalil