vnpas / sso-laravel
VATSIM OAuth for Laravel
Requires
- php: >=5.4.0
- illuminate/http: 8.*
- illuminate/support: 8.*
- vatsim/sso: 3.*
This package is auto-updated.
Last update: 2024-09-19 01:41:44 UTC
README
版本 3.0
这个VatsimSSO包与VATSIM.net单点登录集成,允许用户使用他们的VATSIM ID登录。这对于官方vACCs和ARTCCs特别有用。
此包支持Laravel 5和6。
安装
使用Composer安装VatsimSSO及其依赖项。
$ composer require vatsim/sso-laravel 3.*
设置
将提供者和外观添加到您的app.php
配置文件中(config/app.php
)。
- 提供者:
Vatsim\OAuthLaravel\OAuthServiceProvider
- 外观:
Vatsim\OAuthLaravel\SSOFacade
配置文件
使用Artisan发布配置文件。相应地更改设置。
$ artisan vendor:publish --provider="Vatsim\OAuthLaravel\OAuthServiceProvider"
强烈建议您使用Laravel内置的环境文件支持来保护敏感数据。更多详细信息可以在配置文件的注释中找到。
用法
登录
第一步是向VATSIM发送请求,让用户登录。最简单的方法是使用login
函数。该函数接受三个参数。
参数
成功
成功参数提供三个参数:$key
、$secret
和$url
。key
和secret
应存储在会话中以供验证过程使用。url
将用于将用户重定向到VATSIM SSO站点。
错误
可选参数。如果忽略此参数并且发生错误,将抛出SSOException
。如果您传递一个函数,则将返回一个参数$error
,它是SSOException
的实例。
示例
$returnUrl = '...'; // load URL from config return VatsimSSO::login( $returnUrl, function($key, $secret, $url) { Session::put('vatsimauth', compact('key', 'secret')); return Redirect::to($url); }, function($e) { throw $e; // Do something with the exception } );
如果您不希望使用->login()
函数,则可以使用->requestToken($returnUrl)
。这将返回一个包含key
和secret
的对象或抛出VATSIM\OAuth\SSOException
,如果发生错误。然后使用->redirectUrl()
获取重定向URL。
验证登录
登录成功后,我们需要从VATSIM获取用户数据。为此,我们也编写了一个函数以简化您的操作。
参数
成功
成功参数返回两个变量:$user
和$request
。user
变量将是一个包含您组织所有可用用户数据的对象。request
变量将提供有关请求的信息。
错误
可选参数。如果忽略此参数并且发生错误,将抛出SSOException
。如果您传递一个函数,则将返回一个参数$error
,它是SSOException
的实例。
示例
$session = Session::get('vatsimauth'); return VatsimSSO::validate( $session['key'], $session['secret'], Input::get('oauth_verifier'), function($user, $request) { // At this point we can remove the session data. Session::forget('vatsimauth'); Auth::loginUsingId($user->id); return Redirect::home(); }, function($error) { throw $e; // Do something with the exception } );
如果您不希望使用->validate()
函数,则可以使用->checkLogin($key, $secret, $verifier)
。这将返回一个包含user
和request
对象的对象或抛出VATSIM\OAuth\SSOException
,如果发生错误。
许可
MIT
自由软件,太棒了!