我对 the documentation 有点困惑。据说:
<块引用>Passport 包含一个身份验证保护,用于验证访问 传入请求的 令牌。一旦您将 api 防护配置为 使用passport driver,只需要指定auth:api 任何需要有效访问令牌的路由上的中间件。
所以这意味着 Passport 使用警卫不是为了验证用户,而是在需要这些令牌的路线上验证访问令牌。我做对了吗?
答案 0 :(得分:0)
在这种情况下,验证访问令牌就是对用户进行身份验证。为了理解为什么会这样,让我们通过一个使用 JWT 的简化身份验证流程(让我们暂时忽略 oAuth2)。
POST /login
请求,请求正文中包含 username
和 password
。Authorization
标头中提供令牌。Authorization
标头中提取访问令牌并检查其签名。如果签名有效,后端可以确定令牌数据没有被操纵,例如。 G。通过更改访问令牌上的用户 ID。使用有效签名,后端可以从令牌负载中提取用户 ID,并将该特定 ID 的 User
模型设置为经过身份验证。如果签名无效,后端可能会返回类似 401 Unauthorized
的内容。