Vue.js + REST api 中的身份验证流程

Authentication flow in Vue.js + REST api

我正在使用 vue cli 和 adonis.js 构建一个项目。 前端将仅提供 Vue.js,后端将仅提供 REST api。 我将使用 jwt 进行身份验证。问题是,我不了解 jwt 的身份验证流程。我最近从 Laravel 迁移到 adonis,所以我对 Vue + Ajax + REST api 知之甚少。这是我的问题:

  1. 是否必须在每个 Ajax 请求中发送令牌?

  2. 如何让当前用户与给定的 jwt 令牌相关联?

  3. 什么是refreshToken?

提供一份 link 的详细指南就足够了。

  1. 是否必须在每个 Ajax 请求中发送令牌?

是的,客户端必须发送他的令牌(登录成功后getter)才能访问安全资源。

  1. 如何让当前用户与给定的 jwt 令牌相关联?

JWT 有一个 «sub» 属性,您可以在其中保存例如用户的 ID。

  1. 什么是refreshToken?

当客户端令牌过期时,您必须提供一个新的,无需重新登录。

这是一个 nodejs 指南:https://www.codementor.io/@olatundegaruba/5-steps-to-authenticating-node-js-with-jwt-7ahb5dmyr

完成@ljcordero的回答

美少年方面:

您可以获取具有 auth 对象的用户。喜欢:

async example ({ auth, request }) {
    const user = await auth.getUser()
    ...
}

Complete documentationauth

VueJS 端:

Adonis 创建的令牌包含一个 UID 字段。代表用户的id。

这是一个示例令牌: