验证Express api的最佳方法是什么?

时间:2017-11-13 13:10:31

标签: node.js express authentication jwt passport.js

我使用Angular 4作为前端,使用MongoDB作为数据库。我用Express来创建API。现在我需要对除登录和注册之外的每个API进行身份验证,以防止未经授权的用户访问API。

我是这种身份验证的新手,我发现很多方法可用,例如passport.js,jwt等。我很困惑,选择最佳的身份验证方法。所以请提供一些选择,以便选择最好的。

注意:该申请与金融项目无关。因此它不需要高水平的安全性。

1 个答案:

答案 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小时。