vatSIM / sso-laravel
VATSIM OAuth for Laravel
Requires
- php: >=5.4.0
- illuminate/http: 5.*|6.*
- illuminate/support: 5.*|6.*
- vatsim/sso: 3.*
This package is auto-updated.
Last update: 2022-11-25 17:11:01 UTC
README
VatsimSSO for Laravel
版本 3.0
该VatsimSSO软件包与VATSIM.net单点登录集成,允许用户使用他们的VATSIM ID登录。这对于官方vACC和ARTCC特别有用。
该软件包支持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
函数。该函数接受三个参数。
参数
参数 | 类型 | 描述 |
---|---|---|
$returnUrl |
字符串 | 登录成功后用户应重定向到的URL |
$success |
闭包 | 包含在您能够让用户进行认证时需要执行的操作的回调函数(例如,当您的密钥/密钥正确时)。该函数将返回三个变量:$key 、$secret 和 $url 。 |
$error |
闭包 | 默认: null – 错误处理的回调函数。该函数将提供一个参数:一个 VATSIM\OAuth\SSOException 实例。如果没有提供回调,则将抛出 SSOException 。 |
成功
成功参数提供了三个参数:$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 获取用户数据。为此,我们也编写了一个函数来简化您的操作。
参数
参数 | 类型 | 描述 |
---|---|---|
$key |
字符串 | 登录时存储在会话中的 key |
$secret |
字符串 | 登录时存储在会话中的 secret |
$verifier |
字符串 | 查询字符串中传递的 oauth_verifier |
$success |
闭包 | 当登录成功时需要执行操作的回调函数。 |
$error |
闭包 | 默认值:null – 错误处理回调函数(可能是由于错误的 key/secret/verifier)。该函数将提供一个参数:一个 VATSIM\OAuth\SSOException 实例。如果没有提供回调,将抛出 SSOException 。 |
成功
成功参数返回两个变量:$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
免费软件,太棒了!