vnpas/sso-laravel

4.0.7 2021-04-18 18:41 UTC

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$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获取用户数据。为此,我们也编写了一个函数以简化您的操作。

参数

成功

成功参数返回两个变量:$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

自由软件,太棒了!