【问题标题】:What is the best way to authenticate Express api?验证 Express api 的最佳方法是什么?
【发布时间】:2018-04-26 04:22:46
【问题描述】:

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

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

注意:申请与金融项目无关。所以对安全性要求不高。

【问题讨论】:

  • 如果它不需要高度的安全性,你为什么关心哪一个是最好的?随便挑吧。
  • 你在乎什么?您如何定义“最佳”?

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


【解决方案1】:

你可以尝试实现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 小时内有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2017-06-26
    • 1970-01-01
    相关资源
    最近更新 更多