Nodejs + Hapi + SSL/TLS + OAUTH2 + JWT 作为承载
Posted
技术标签:
【中文标题】Nodejs + Hapi + SSL/TLS + OAUTH2 + JWT 作为承载【英文标题】:Nodejs + Hapi + SSL/TLS + OATH2 + JWTs as Bearer 【发布时间】:2016-01-09 23:11:18 【问题描述】:我想要完成的是尽可能多地创建一个写在 NodeJS 上的安全 API,它必须在移动设备上使用。
我们从 Comodo 购买了一个 SSL 证书,用于具有多个子域的单个域,证书由我的 VPS 安装和配置提供者。
我试图找到一些集成 nodejs + hapi + oath2 与 JWTs + SSL/TLS 的 tuts强>。
【问题讨论】:
为什么同时使用 SSL/TLS 和 OAuth2 + JWT。似乎是三因素身份验证。这是降低服务器性能。尽量使用一个。 SSL/TLS 不是关于身份验证,而是关于传输层安全。无论身份验证方法如何,都应始终使用 SSL/TLS。 【参考方案1】:对于 Hapi 中的 JWT 身份验证,您可以使用hapi-auth-jwt2。还有一些其他的 JWT 插件,但这似乎是最成熟的一个。有关如何配置它的文档和示例,请参阅他们的 Github 页面。
要设置 SSL/TLS/HTTPS,您可以查看示例 here。基本上,您设置了两个 Hapi 连接:一个带有用于 HTTP 流量的端口,一个带有用于 HTTPS(即 SSL/TLS)流量的端口。
另外,我推荐阅读dwyl's introduction on JWT(有很多这样的介绍,但是这个简短易懂,恕我直言)。
【讨论】:
感谢您的回答,但这个问题是 6 个月前提出的。 1. 我们使用的方法是 nginx 通过 SSL/TLS 处理流量和通过 localhost http 到 nodejs 服务器的代理请求。 2. 第一个授权服务器(oauth2 服务器使用为 express 编写的 oauthjs/node-oauth2-server) 3. 第二个资源服务器(我们在 hapi 上编写的主要 Web 服务) 4. 在 hapi 服务器上使用一个简单的库来解析 JWT 令牌。以上是关于Nodejs + Hapi + SSL/TLS + OAUTH2 + JWT 作为承载的主要内容,如果未能解决你的问题,请参考以下文章