codewiser / uac-laravel
FC Zenit OAuth2.0 客户端 for Laravel
Requires
- ext-json: *
- codewiser/uac: *
- laravel/framework: >=5.8
This package is auto-updated.
Last update: 2024-09-08 21:08:55 UTC
README
该包为开发者提供名为 middleware 的名为 auth.oauth 的中间件,开发者可以使用它来关闭所有需要用户授权的路由。用户授权是在 FC Zenit OAuth 服务器上进行的。
组成
该包包含路由、其控制器和中间件。
路由
GET /oauth/callback
回调地址。
GET /oauth/logout
一个地址,用于同时在服务器和网站上注销用户。开发者只有在需要仅在服务器上注销用户的情况下才应使用此路由。
GET /oauth
服务路由,显示授权用户的信息。
配置
OAUTH_CLIENT_ID= // ClientId OAUTH_CLIENT_SECRET= // ClientSecret OAUTH_SCOPES= // Your application default scopes
您在 OAuth 服务器上注册的应用程序将具有 redirect_uri http(s)://example.com/oauth/callback。
如果您的应用程序中的用户模型与 \App\User::class 不同,则指定正确的模型
USER_MODEL=\App\Models\User
在 config/app.php 中编写 Codewiser\UAC\Laravel\ServiceProvider。
覆盖
该包尝试通过匹配 email 来授权本地用户;如果没有用户,则该包会添加他。
如果您在应用程序中实现了复杂用户逻辑,则可以覆盖 UacClient 类(您感兴趣的是 authorizeResourceOwner 方法)和 AuthenticateWithOauth,创建自己的 middleware 并使用它。
使用
使用提供的中间件可以关闭单个路由
Route::get('/test')->middleware('auth.oauth');
可以关闭一组路由
Route::group(['middleware' => ['auth.oauth']], function() { Route::get('/test1'); Route::get('/test2'); });
或者可以将此中间件添加到 web 组,这样整个网站都将被关闭,不允许未授权访问。
protected $middlewareGroups = [ 'web' => [ // ... \Codewiser\UAC\Laravel\AuthenticateWithOauth:class, ], ];
其他
该包继承自 codewiser/uac,因此开发人员可以访问所有获取 access_token 的方法,并提供了方便的接口来访问 API 资源。