推荐:简单易用的 Laravel Keycloak 守卫
如果你正在为你的 Laravel API 寻找一个基于 Keycloak 服务器JWT令牌认证的解决方案,那么 Simple Keycloak Guard
可能正是你需要的工具。这个包帮助你在不使用 Laravel Passport 的情况下,利用 Keycloak 服务器进行用户的认证。
项目介绍
Simple Keycloak Guard
设计用于那些前端和后端分离,且用户直接在 Keycloak 服务器上进行身份验证并获取 JWT 令牌的应用场景。它负责验证从 Keycloak 服务器发出的令牌,并在必要的时候更新或创建数据库中的用户信息。
项目技术分析
- JWT 校验: 包通过校验令牌签名、结构和过期时间来确保其有效性。
- 资源访问控制: 确保 API 允许由令牌指定的资源访问。
- 数据库交互: 当启用时,它可以同步数据库中的用户数据,基于有效的令牌更新或创建用户。
应用场景
- 前后端分离应用: 前端用户在 Keycloak 服务器上登录,然后将 JWT 令牌传递给 API 进行身份验证。
- API 认证: 需要基于 JWT 令牌的保护的 Laravel 或 Lumen API。
项目特点
- 轻量级: 只针对 Laravel API 和 Keycloak 服务进行认证,无需额外的库或插件。
- 易于配置: 通过简单的环境变量配置即可设置 Realm 公钥和其他关键属性。
- 灵活的用户管理: 支持自定义方法更新数据库中的用户信息,或者仅基于 JWT 令牌进行验证。
- 全面的测试: 提供了完整的测试套件以保证代码质量。
安装与配置
安装过程非常简单:
composer require robsontenorio/laravel-keycloak-guard
随后,在 Laravel 中发布配置文件,Lumen 用户还需要注册服务提供者。详细步骤可以在项目文档中找到。
使用流程
一旦配置完成,你就可以通过中间件轻松地保护你的路由,例如:
// 在 Laravel 路由文件中
Route::group(['middleware' => 'auth:api'], function () {
Route::get('/protected-endpoint', 'SecretController@index');
});
// 在 Lumen 路由文件中
$router->group(['middleware' => 'auth'], function () {
$router->get('/protected-endpoint', 'SecretController@index');
});
开源贡献与支持
开发者可以通过 Twitter@robsontenorio 获取帮助,或者参与到项目的贡献中。项目包含了详细的测试和开发指南,方便在 Visual Studio Code 内部容器中运行和测试。
如果你的项目需要一个安全且易用的身份验证解决方案,尝试一下 Simple Keycloak Guard
吧,它会简化你的 API 认证流程。