codewiser/uac-laravel

FC Zenit OAuth2.0 客户端 for Laravel

v1.2 2020-04-08 10:59 UTC

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