rluders / jwtauth

Winter CMS 的 JSON Web Token 认证插件

资助包维护!
rluders
Patreon

安装: 648

依赖: 1

建议: 0

安全性: 0

星星: 29

关注者: 5

分支: 28

开放问题: 9

类型: winter-plugin

v1.5.0 2023-03-29 08:50 UTC

This package is auto-updated.

Last update: 2024-09-29 12:07:02 UTC


README

简介

此插件为 Winter CMS 提供了与 Winter.User 集成的 JSON Web Tokens 认证机制。对于使用 Angular、Vue.js、React 或其他现代 JavaScript 框架构建的 Web 应用程序来说,这是必不可少的。

要求

主题

教程

安装

$ composer require rluders/jwtauth

配置

您必须在 Winter 后端设置应用程序的密钥令牌。要做到这一点,在 Winter 后端访问:设置 > 用户 > JWTAuth

使用方法

以下是此插件可用的端点列表。

如果您使用 Postman,您可以通过此处导入包含所有测试所需调用的集合。

登录

POST /api/auth/login

路由名称

api.auth.login

参数

字段 login 的值可以是账户 emailusername。您可以在 Winter.User 配置中选择用于登录的字段。

响应

成功

代码:200

{
  "token": string,
  "user": object
}

错误

代码:401

{
  "error":
    invalid_credentials |
    could_not_create_token |
    user_inactive |
    user_is_banned
}

注册

POST /api/auth/register

路由名称

api.auth.register

参数

字段 username 可以是 必需的。这取决于您的 Winter.User 配置。

响应

成功

代码:201

[]

错误

代码:401

{
  "error": object | registration_disabled
}

支持的事件

  • Winter.User.beforeRegister
  • Winter.User.register

账户激活

POST /api/auth/account-activation

路由名称

api.auth.account-activation

参数

响应

成功

代码:200

[]

错误

代码:422

{
  "error": invalid_activation_code | invalid_user | user_not_found
}

忘记密码

POST /api/auth/forgot-password

路由名称

api.auth.forgot-password

参数

响应

成功

代码:200

[]

错误

代码:404

{
  "error": user_not_found
}

重置密码

POST /api/auth/reset-password

路由名称

api.auth.reset-password

参数

响应

成功

代码:200

[]

错误

代码:422

{
  "error":
    invalid_reset_password_code | invalid_user | invalid_reset_password_code
}

刷新令牌

POST /api/auth/refresh-token

路由名称

auth.api.refresh-token

参数

响应

成功

代码:200

{
  "token": string
}

错误

代码:403

{
  "error": could_not_refresh_token | given_token_was_blacklisted
}

获取用户

GET /api/auth/me

中间件

jwt.auth

路由名称

api.auth.me

参数

响应

成功

代码:200

{
  "user": object
}

错误

代码:404

{
  "error": user_not_found
}

已知问题

尽管我一直在尝试解决可能的问题,但仍然可能会发生一些意外。以下是一些可能的问题及其解决方案。

Apache 用户注意

为了使用授权 Bearer 令牌,您必须将以下代码添加到您的 .httaccess

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]

许可

GPLv3