如何使用JWT令牌作为登录验证?

时间:2018-01-23 12:18:34

标签: javascript authentication jwt

我正在创建一个登录页面,我发现JWT令牌比会话更受欢迎,但我不明白如何使用令牌。

我将用ajax解密的用户和密码发送到服务器,并在php文件中验证用户,然后返回JWT。

我应该在JWT中放些什么?我是否只检查令牌以了解用户是否已登录,或者我是否以某种方式处理它以检查它是否是正确的令牌?如果是这样,怎么样?

到目前为止,我已经在客户端看到了一些示例,您只检查令牌是否存在,但为什么我应该将散列数据作为令牌而不是1或0.我没有得到此方法的优点。

编辑:我是否应该同时请求存储在会话存储中的JWT令牌,并在会话存储中存储用户在登录字段中键入的内容,然后在每次用户重新加载页面时将它们相互比较?

1 个答案:

答案 0 :(得分:0)

看起来我们需要JWT如何在这里工作的基础知识:

  1. 客户端使用ajax向服务器发送用户名/密码。
  2. 服务器检查用户名/密码,如果它们有效,则创建一个加密的令牌,唯一的服务器可以读取和理解。
    • 服务器会考虑各种字段(也称为"声明"),例如" iss" (代币发行人)和" Sub" (令牌主题),整个列表here
    • 我们可以自定义像user-id这样的字段,以后可以在验证令牌时使用。
  3. 服务器通过响应将令牌发送回客户端。客户端将此令牌保存在本地存储或某些变量中。
  4. 对于每个进一步的请求,客户端将此标记作为标头发送。
  5. 服务器检查并验证此令牌,从此令牌获取需要信息,如user-id,并在有效时响应用户。令牌也可能包含到期日期/时间,因此在一段时间后,服务器可能会选择拒绝为客户提供服务。
  6. enter image description here

    虽然这可能无法直接回答您的问题,但它澄清了GWT的基本工作流程。

相关问题