laradevs/authremote

这是一个允许通过OAuth 2.0在Laravel应用程序中执行和管理认证控制的组件。

v1.1 2020-04-13 17:17 UTC

This package is auto-updated.

Last update: 2024-09-14 05:24:50 UTC


README

AUTH REMOTE

这是一个允许通过OAuth 2.0在Laravel应用程序中执行和管理认证控制的组件。

安装

您可以通过Composer安装此包

$ composer require laradevs/authremote

接下来,您必须注册服务提供者(可选)

// config/app.php

'Providers' => [
   // ...
    \LaraDevs\AuthRemote\MainServiceProvider::class,
]

接下来,您必须发布配置文件以定义OAuth服务器凭据

php artisan vendor:publish --provider="LaraDevs\AuthRemote\MainServiceProvider"

这是发布文件的內容

return [
    'uri' => env('USER_PROVIDER_REST_URL', ''),
    'name_session_rest' => 'token_oauth',
    'headers' => [],
    'route_not_session'=>'start_route'
];

.env文件中设置您的URL Rest

APP_NAME="Laravel"
# ...
USER_PROVIDER_REST_URL=putYourRestURL

在Array Services中添加

'laravelpassport' => [
        'client_id' => env('LARAVELPASSPORT_KEY','http://YOUR_ROUTE_HOST_SERVER/api/user'),
        'client_secret' => env('LARAVELPASSPORT_SECRET'),
        'redirect' => env('LARAVELPASSPORT_REDIRECT_URI'),
        'host'=> env('LARAVELPASSPORT_HOST')
    ]

在方法render中添加Handle Exception

 if ($exception instanceof \LaraDevs\AuthRemote\RestException) {
            return redirect()->route(config('rest-provider.route_not_session'));
 }

在Array Auth中添加

  'providers' => [
        'users' => [
            'driver' => 'rest-users',
            'model' => \LaraDevs\AuthRemote\User::class
        ],
  ]

自动发布登录 & 注销路由

Route::get('/auth-remote/{provider}', '\LaraDevs\AuthRemote\ActionsController@redirectToProvider')->name('laravel_passport');
Route::get('/auth-remote/{provider}/callback', '\LaraDevs\AuthRemote\ActionsController@handleProviderCallback');
Route::post('/auth-remote-logout','\LaraDevs\AuthRemote\ActionsController@logout')->name('laravel_passport.logout');

为初始路由添加路由名称

Route::get('/', function () {
    return view('welcome');
})->name(config('rest-provider.route_not_session'));