nisam/passport-api

自动设置Laravel 8及更高版本中的API认证,提供现成的路由和控制器。类似于Laravel Breeze API。

V1.0.0 2024-08-14 18:51 UTC

This package is auto-updated.

Last update: 2024-09-20 20:31:31 UTC


README

Nizam Passport API 是一个Laravel包,旨在通过Laravel Passport简化API认证设置。该包与Laravel 8、9、10和11版本兼容,通过自动化安装和配置过程简化Passport集成,非常适合仅API的项目。

功能

  • 自动安装Laravel Passport: 确保Passport已安装和配置。🚀
  • API认证框架: 提供必要的控制器、请求和路由。🛠️
  • 配置更新: 自动更新api.phpweb.php,并追加到auth.php以使用Passport。🔧
  • 用户模型更新:HasApiTokens特质添加到用户模型。👤
  • 环境配置: 使用默认设置更新.env。🌐
  • 认证配置更新: 如果不存在,将API保护器添加到auth.php配置文件,并使用Passport驱动程序。这确保了您的应用程序使用Passport的TokenGuard对传入的API请求进行认证。🛡️
  • 清理: 删除仅API应用程序不需要的文件和目录。🗑️

要求

  • PHP ^7.3|^8.0
  • Laravel ^8.0|^9.0|^10.0|^11.0
  • Laravel Passport ^10.0|^11.0|^12.0

安装

  1. 安装Nizam Passport API包

    composer require nizam/passport-api
  2. 设置Passport API

    php artisan nizam:install-passport-api

    此命令将

    • 检查并安装Laravel Passport(如果需要的话)
    • 设置所需的控制器、请求和路由
    • HasApiTokens特质添加到用户模型
    • 更新您的auth.php配置以使用Passport作为API驱动程序
    • 更新您的web.phpapi.php配置
    • 使用默认URL设置修改.env
    • 清理不必要的文件和目录

使用方法

此包提供了以下API路由

  • POST /api/auth/register: 注册新用户 📝

  • POST /api/auth/login: 用户登录 🔑

  • POST /api/auth/logout: 用户登出(需要认证) 🚪

  • POST /api/auth/forgot-password: 发送密码重置链接 📧

  • POST /api/auth/reset-password: 重置用户密码 🔄

  • GET /api/auth/verify-email/{id}/{hash}: 验证电子邮件地址(需要认证) ✔️

  • POST /api/auth/email/verification-notification: 重新发送电子邮件验证通知(需要认证) 🔄

  • GET /api/auth/user: 获取认证用户信息(需要认证) 🧑‍💻

配置

安装后,请确保您的应用程序的config/auth.php配置文件包括具有Passport驱动的API认证保护器。此配置指示应用程序使用Passport的TokenGuard对传入的API请求进行认证。

示例

要查看集成和设置的演变过程,您可以查看存储库提交之间的差异。有关更改的具体示例,请查看提交历史

报告问题

如果您遇到任何问题或对改进有建议,请按照以下步骤报告

  1. 检查现有问题: 在创建新问题之前,请检查问题标签页,查看问题是否已被报告。
  2. 创建新问题: 如果问题尚未报告,请点击“新建问题”按钮,并详细描述问题。包括
    • 清晰的标题
    • 问题的详细描述
    • 重现问题的步骤
    • 任何错误信息或日志
    • 您正在使用的Laravel和Laravel Passport版本
  3. 提交问题: 提供所有必要信息后,提交问题。维护者将尽快审查并处理。

许可证

本软件包采用MIT许可证。有关详细信息,请参阅LICENSE文件。

致谢

  • Nizam Omer - 软件包作者和维护者

感谢

感谢您使用Nizam Passport API!特别感谢我的上帝,所有贡献者、测试者和提供反馈的人。您的支持非常宝贵。希望这个软件包能帮助您在API开发之旅中。🙏