JWT 策略

Payload 提供了通过 JSON Web Tokens (JWT) 进行身份验证的能力。这些令牌可以从 loginlogoutrefreshme 等认证操作的响应中获取。

提示: 你可以通过 req.user 参数在访问控制钩子中访问已登录用户。更多详情

通过 Authorization 头识别用户

除了通过 HTTP-only cookie 进行认证外,你还可以通过 HTTP 请求中的 Authorization 头来识别用户。

示例:

const user = await fetch('http://localhost:3000/api/users/login', {
  method: 'POST',
  body: JSON.stringify({
    email: 'dev@payloadcms.com',
    password: 'password',
  }),
}).then((req) => await req.json())

const request = await fetch('http://localhost:3000', {
  headers: {
    Authorization: `JWT ${user.token}`,
  },
})

省略令牌返回

在某些情况下,你可能希望阻止令牌从认证操作中返回。你可以通过将 removeTokenFromResponses 设置为 true 来实现:

import type { CollectionConfig } from 'payload'

export const UsersWithoutJWTs: CollectionConfig = {
  slug: 'users-without-jwts',
  auth: {
    removeTokenFromResponses: true, // highlight-line
  },
}