在Angular / Golang项目中使用JWT

时间:2016-04-30 20:28:46

标签: angularjs go oauth jwt

我在解决如何正确使用JWT项目时遇到了问题。

情况就是这样:

我有一个网站,人们可以通过抽搐登录,这给我一个oauth令牌,他们的用户名和更多的东西,取决于我的要求。 (这是身份验证过程的样子https://github.com/justintv/Twitch-API/blob/master/authentication.md

在我的数据库中,我有一些具有访问级别的用户名。例如,500级意味着他们可以在我的网站上看到管理仪表板,或者他们可以从角度发送POST请求以更改数据。

我的角度应用程序显然无法访问数据库。我只希望通过我的go webserver提供的API进行通信。

我想知道的是我如何确保尝试发送安全POST或GET的用户实际上是他所说的用户并且有权执行他正在执行的命令。

1 个答案:

答案 0 :(得分:2)

JWT由3部分组成:标题(用于"元数据"类似于使用的加密算法等),claimes(存储在令牌中的实际数据)和HMAC(用于验证上述两部分未被篡改)。

在您的情况下,当您用户登录时,您应该会收到oauth令牌,他们的用户名等。然后您可以使用用户名来获取相关的用户级别,并将所有内容存入您自己的JWT的声明中发回给用户。在后续请求中,您只需检查令牌是否有效(不要忘记给他们一个简短的ttl),然后您确定执行请求的用户是声明的那个它是(mnemotechnic pun意图)。