vatSIM/sso-laravel

该软件包已被弃用且不再维护。未建议替代软件包。

VATSIM OAuth for Laravel

3.1 2019-09-29 18:43 UTC

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$urlkeysecret 应该存储在会话中,用于验证过程。将使用 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)。这将返回一个包含 keysecret 的对象,或者在发生错误时抛出 VATSIM\OAuth\SSOException。然后使用 ->redirectUrl() 获取重定向的 URL。

登录验证

登录成功后,我们需要从 VATSIM 获取用户数据。为此,我们也编写了一个函数来简化您的操作。

参数

参数 类型 描述
$key 字符串 登录时存储在会话中的 key
$secret 字符串 登录时存储在会话中的 secret
$verifier 字符串 查询字符串中传递的 oauth_verifier
$success 闭包 当登录成功时需要执行操作的回调函数。
$error 闭包 默认值:null – 错误处理回调函数(可能是由于错误的 key/secret/verifier)。该函数将提供一个参数:一个 VATSIM\OAuth\SSOException 实例。如果没有提供回调,将抛出 SSOException

成功

成功参数返回两个变量:$user$requestuser 变量将是一个包含您组织可用的所有用户数据的对象。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)。这将返回一个包含 userrequest 对象的对象,或者在发生错误时抛出 VATSIM\OAuth\SSOException

许可证

MIT

免费软件,太棒了!