【问题标题】:Loopback - Implementing custom authenticationLoopback - 实现自定义身份验证
【发布时间】:2016-08-30 20:25:25
【问题描述】:
我们正在开发 REST 服务,但我们已经有一个基础设施来管理用户。但是我们想利用 Loopback 的认证和授权机制。要求是
- 添加远程方法并接收用户凭据
- 通过存储过程调用手动验证凭据
- 通过 Loopback 生成访问令牌
- 继续使用 Loopback 授权机制,例如应用程序中的角色
我应该使用Loopback's third party login support 实现自定义登录服务提供程序吗?我在这方面找不到很好的资源。任何指针将不胜感激。
【问题讨论】:
标签:
node.js
loopbackjs
strongloop
【解决方案2】:
我的示例是在 express 中使用引导脚本,但您可以轻松地将其更改为远程方法。
module.exports = function(app) {
//get User model from the express app
var UserModel = app.models.User;
app.post('/login', function(req, res) {
console.log(req.body);
//parse user credentials from request body
const userCredentials = {
"username": req.body.username,
"password": req.body.password
}
UserModel.findOne({
"where": {
"username": userCredentials.username
}
}, function(err, user) {
// Custom Login - Put the stored procedure call here
if (err) {
//custom logger
console.error(err);
res.status(401).json({
"error": "login failed"
});
return;
}
// Create the accesstoken and return the Token
user.createAccessToken(5000, function(err, token) {
console.log(token)
res.json({
"token": result.id,
"ttl": result.ttl
});
})
})
});
}
现在您可以将该令牌用于 Loopbacks 授权机制。