此页面介绍了 RealWorld API 中的认证系统和与用户相关的端点。它涵盖了用户如何注册、登录、检索和更新其个人资料信息,以及如何在整个系统中处理认证。有关文章相关端点的信息,请参阅 文章端点。
RealWorld API 使用 JSON Web Tokens (JWT) 进行认证。用户注册或登录后,API 会提供一个令牌,该令牌必须包含在后续请求中才能访问受保护的资源。与用户相关的端点允许创建、检索和更新用户信息,以及管理用户关系(关注/取消关注)。
下图说明了 RealWorld API 中的认证流程
来源
用户数据模型在数据库模式中定义
来源
创建一个新用户并返回一个包含认证令牌的用户对象。
端点: POST /api/users
请求体:
响应 (201 Created)
实现细节:
来源
认证现有用户并返回包含令牌的用户信息。
端点: POST /api/users/login
请求体:
响应 (200 OK)
实现细节:
来源
检索当前认证用户的个人资料信息。
端点: GET /api/user
头:
Authorization: Token <jwt-token>响应 (200 OK)
实现细节:
来源
更新当前认证用户的个人资料信息。
端点: PUT /api/user
头:
Authorization: Token <jwt-token>请求体:
响应 (200 OK)
实现细节:
来源
通过用户名检索用户个人资料。
端点: GET /api/profiles/{username}
头:
Authorization: Token <jwt-token> (可选)响应 (200 OK)
实现细节:
来源
通过用户名关注用户。
端点: POST /api/profiles/{username}/follow
头:
Authorization: Token <jwt-token>响应 (200 OK)
实现细节:
来源
通过用户名取消关注用户。
端点: DELETE /api/profiles/{username}/follow
头:
Authorization: Token <jwt-token>响应 (200 OK)
实现细节:
来源
RealWorld API 使用 JSON Web Tokens (JWT) 进行身份验证。
API 使用一个名为 useCheckAuth 的中间件函数来保护需要身份验证的端点
Authorization 标头中提取令牌(格式: Token <jwt-token> 或 Bearer <jwt-token>)event.context.user)此中间件有两种模式可用
required:身份验证是强制性的,如果未提供将返回错误optional:身份验证是可选的(用于已认证时表现不同的端点)来源
身份验证端点可能返回以下错误
| 状态码 | 描述 | 原因 |
|---|---|---|
| 401 | 未授权 | 缺少身份验证令牌 |
| 403 | 禁止 | 无效的身份验证令牌 |
| 422 | 不可处理的实体 | 验证错误(例如,缺少字段、电子邮件/用户名重复) |
错误响应遵循此格式
也可能返回特定的字段错误
来源
RealWorld API 包含一个用于测试认证端点的 Postman 集合。该集合包含测试脚本,用于验证来自认证端点的响应。
来源