Node表示来自外部api的auth令牌

时间:2016-12-12 16:07:41

标签: javascript node.js api express token

我正在制作我的第一个节点+快递应用程序,我正在使用一个调用外部API的npm模块。

我有一个登录页面,其中包含用户输入凭据的表单,然后通过post(ajax客户端,app.post服务器端)传递并用于进行初始api调用(使用npm module)返回一个auth令牌。所有后续的api调用(使用npm模块)都是使用该令牌进行的。

我的问题是:处理该令牌的最佳方法是什么?将它保存在变量/对象中并导出它,然后在我需要令牌的js文件中需要它吗?使用会话(这可能是一个好主意,以避免要求用户重新登录)并将令牌存储在该会话中?

1 个答案:

答案 0 :(得分:0)

我建议您使用jsonwebtoken模块生成令牌

现在该如何使用

  1. 当用户尝试登录时,将这些用户名/电子邮件和密码发送给服务器。
  2. 检查用户凭据是否有效,然后使用jwt.sign方法生成包含userId的令牌(或任何一些值以唯一标识用户)。
  3. 发送该令牌以响应登录请求。

  4. 在客户端接收令牌时将其保存在某些服务中。

    (在每个API调用客户端)

  5. 在对API进行后续调用时,将该令牌添加到请求中(我建议将其添加到Authorization标头中,如此授权承载(令牌)。

    (每次API调用 - 服务器端)

  6. 现在,当服务器获取API请求时,它将从请求标头获取令牌并使用jwt.verify方法检查令牌的有效性,当请求通过令牌验证阶段时,您可以发送请求的数据作为响应。

    注意:要添加令牌验证阶段,您可以使用express的中间件概念。为此,您可以创建一个单独的Auth模块,该模块导出一个名为verify的方法,您可以在其中使用jwt.verify并要求使用Auth模块并将Auth.verify方法作为中间件