首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js RESTFUL服务自建

Node.js RESTFUL服务自建
EN

Stack Overflow用户
提问于 2015-06-21 06:15:56
回答 1查看 79关注 0票数 0

我正在通过HTTPS在我的Node.js应用程序上创建一个REST服务。我不希望任何人使用这些REST服务,除非它们是经过身份验证的用户,所以在向这些服务提出请求时,我需要一种身份验证方法。

我在网上读过书,看来带护照的OAuth2是个好办法.然而,我想出了一个更简单的解决方案,它不需要持久化令牌,我想知道,我的解决方案是否存在任何较大的漏洞?

我的解决方案是将一个秘密存储在服务器上。当用户登录并对他们进行身份验证(或注册)时,我会散列用户用户名,向其添加时间戳,并用我的秘密对其进行编码,以创建一个“访问令牌”。由于时间戳,此令牌将始终在一小时(或一天或无论如何长.)之后过期。

一旦用户拥有了这个访问令牌,他们只需要在请求查询中传递这个令牌以及他们的用户名,他们就可以使用服务器的REST了。考虑到当我用服务器机密解码令牌时,它等于用户名。

此方法还不要求我保存任何令牌信息(刷新令牌、过期时间等)。我也不需要额外的模块,如护照和oauth模块来实现我的解决方案,它似乎非常紧凑。

我的问题是(我对安全性非常陌生),对于服务器来说,如果服务器的秘密永远不会被发现的话,这个解决方案是否足以为移动应用程序(仍然可以通过REST客户端访问)提供服务?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 19:08:00

欢迎来到这里!

对于任何有关安全性的问题,默认答案是:不要自己尝试:)

听起来您正在重新发明签名访问令牌方案,它正在被编码为JSON令牌(JWT)。我强烈建议你用这个方案代替。

不要在GET params中传递数据,因为它很可能在某个地方被缓存或记录(让自己容易受到中间人的攻击)。您应该将令牌存储在HttpOnly; Secure cookie中,以防止cookie暴露在非安全通道中。

我写了一些关于JWT的深入文章,以及如何在web浏览器中使用它们:

使用Node.js创建和验证JWT

使用JSON令牌(JWT)构建安全的用户接口

免责声明:我在风暴路径工作。我们是一种用户身份验证服务,我们可以为您解除所有这些问题。听起来你在使用Node,我们有很好的库,可以让您在几分钟内运行所有的用户需求:)

我也是nJwt的作者,这是一个Node.js库,它使使用JWT的方法变得非常容易。

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30961818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档