在SPA HTML5应用和Web服务之间保护用户令牌?

时间:2017-01-28 23:54:24

标签: javascript php html5

很抱歉,如果有人问了几次,但是找不到可靠的答案。

我想保护HTML5应用程序和PHP Web服务之间的登录过程和会话(种类)。我向用户显示一个使用HTTPS与服务器的登录屏幕,然后为客户端提供一个随机GUID,该GUID存储在数据库中,包含登录时间和上次请求时间,以及我为其存储的实际用户ID在用户表上。因此GUID可能每次都不同,但它在登录时映射到的用户ID只能在服务器端看到。

在身份验证方面,我感到很不舒服,而且从来没有真正针对像这样的Web服务处理HTML5 / JS应用程序。我通常开发ASP .NET站点并使用会话。

我最近发现了JWT令牌,它对客户端中包含的令牌字符串中的数据存储进行加密,并传递给服务器或从服务器传递。这比我正在做的更安全吗?我现在应该使用JWT而不是这个GUID映射吗?

我的目标是向Web场发送无会话请求,该请求可以将您带到任何特定的Web服务器,并且验证请求以查看该请求是否来自有效的登录用户。 / p>

欢迎任何建议:)。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您不对令牌中的敏感数据进行编码,则使用JWT令牌是完全安全的,因为令牌可以在没有秘密的情况下进行解码。

您可以做的是拥有两个密钥对(私有/公共)RSA密钥。 专用于编码令牌并在登录成功时将其发送到客户端

客户端将令牌保存为cookie,即HTML5 localstorage e.t.c, 在每个请求中,客户端通过请求标头将令牌传递回Web服务器,然后Web服务器使用公钥验证令牌。同时解码令牌并从令牌获取GUID,然后继续处理请求。

此工作流程可以跨多种服务器端语言工作,因为它们有许多JWT库。