保护Node.js RESTful API

时间:2018-04-04 07:52:58

标签: node.js rest jwt restful-authentication

我是Node.js中的新手,只想为Unity3D中的游戏创建RESTful API。就在游戏结束时,如果他/她想要分享,我想要一些来自玩家的姓名和电话号码等信息。我知道如何实现这个服务器但我的问题是安全性。我在Node.js中搜索了很多关于安全性的内容,但我还没想到它。在我的搜索中,我看到有一个npm包是JWT,并想出了如何使用它。据我所知,我们向服务器发送请求,作为响应,它返回一个持票令牌,我们可以用它设置我们的头,并使用GET,POST或其他方法。我的问题是,任何人都可以向该URL发送请求并获取该令牌并执行其他操作(我认为我犯了一个错误)。那么这种服务器的安全性解决方案是什么?

1 个答案:

答案 0 :(得分:3)

有多种身份验证策略(基本,oauth,令牌,cookie)。由于您已经选择了JWT策略,我将尝试解释它。

  1. 用户注册(电子邮件,密码,电话,姓名等)
  2. 您的服务器为该用户jwt.sign({ id: user.id, role: user.role }, 'secret', { expiresIn: 60 * 60})
  3. 返回201和JWT令牌签名特定
  4. 然后,您可以向路由添加中间件,以验证令牌是否在身份验证标头中以及令牌是否有效。 jwt.verify(token, 'your secret')
  5. 由于您在标头中使用令牌,因此应使用HTTPS加密您的http请求
  6. 您还需要一个接收ID和密码的登录端点,并为该用户生成新令牌,因为令牌可能会过期。
  7. 通常我会使用此软件包:https://github.com/auth0/node-jsonwebtoken您还可以在其中设置加密算法和更多选项。

    包含图片的另一种解释:https://stackoverflow.com/a/45978644/4120554