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 资源。