避免在每个请求上验证jwt令牌

时间:2018-10-29 06:54:28

标签: javascript node.js jwt

考虑一个案例,我在登录时发送了@extends('layouts.dashboard') @section('content') <h1>Its working</h1> @endsection 。 现在,有什么方法可以避免对auth-token进行的每个DB击中validaterequest

任何链接或描述都会有帮助。

1 个答案:

答案 0 :(得分:1)

是的,您可以分两个步骤进行操作:

  1. 首先,JWT令牌验证不需要DB调用。通常,HMACSHA256用于对JWT进行签名。如果您有密钥,则应该能够在传入的JWT有效负载上计算MAC,并将其与传入的MAC比较,而无需进行任何数据库调用。

  2. 为增强安全性,您可以将新创建​​的JWT存储在内存中的缓存中(例如Redis),其TTL应该与JWT有效期相同。当TTL过期时,缓存将自动删除JWT条目,从而导致验证失败。如果出于某种原因,缓存不与文件系统同步,并且缓存服务器崩溃,则丢失的只是有效的令牌,迫使用户重新登录(当然,在通常情况下,您可以采取一些措施来避免这种情况)。因此,您要做的就是将传入的JWT与缓存的列表进行比较。如果它在缓存中,则验证成功