我使用Angular 4作为前端,使用MongoDB作为数据库。我用Express来创建API。现在我需要对除登录和注册之外的每个API进行身份验证,以防止未经授权的用户访问API。
我是这种身份验证的新手,我发现很多方法可用,例如passport.js,jwt等。我很困惑,选择最佳的身份验证方法。所以请提供一些选择,以便选择最好的。
注意:该申请与金融项目无关。因此它不需要高水平的安全性。
答案 0 :(得分:0)
您可以尝试实施Json Web Tokens
对于NodeJS,有一个名为nJwt的npm包。您可以使用npm安装它。
用法示例(缩写):
var njwt = require('njwt');
if (loginSuccessful) {
var payload = {
iss: 'your_domain_name',
iat: Math.round((Date.now() / 1000)),
// Set expiration date to now +7200 seconds
exp: Math.round((Date.now() / 1000)) + 7200,
username: username,
ip: ip
}
var token = njwt.create(payload,your_super_secret_key,'HS512').compact());
} else {
// Login not successful, don't give key
}
您可以将令牌发送给用户,然后他们将其用于每个请求(例如)。
使用此配置,令牌有效期为7200秒或2小时。