考虑一个案例,我在登录时发送了@extends('layouts.dashboard')
@section('content')
<h1>Its working</h1>
@endsection
。
现在,有什么方法可以避免对auth-token
进行的每个DB
击中validate
到request
。
任何链接或描述都会有帮助。
答案 0 :(得分:1)
是的,您可以分两个步骤进行操作:
首先,JWT令牌验证不需要DB调用。通常,HMACSHA256用于对JWT进行签名。如果您有密钥,则应该能够在传入的JWT有效负载上计算MAC,并将其与传入的MAC比较,而无需进行任何数据库调用。
为增强安全性,您可以将新创建的JWT存储在内存中的缓存中(例如Redis),其TTL应该与JWT有效期相同。当TTL过期时,缓存将自动删除JWT条目,从而导致验证失败。如果出于某种原因,缓存不与文件系统同步,并且缓存服务器崩溃,则丢失的只是有效的令牌,迫使用户重新登录(当然,在通常情况下,您可以采取一些措施来避免这种情况)。因此,您要做的就是将传入的JWT与缓存的列表进行比较。如果它在缓存中,则验证成功