stanwarri / larasocialplus

此包最新版本(dev-master)没有可用的许可信息。

dev-master 2016-04-18 15:48 UTC

This package is not auto-updated.

Last update: 2024-09-24 04:38:38 UTC


README

安装

将此添加到您的 composer.json 文件中

Laravel 5.2

"stanwarri/larasocialplus": "dev-master"

Laravel 5.1

"stanwarri/larasocialplus": "1.0.0"

服务提供者

将此添加到您的 config/app.php 中的服务提供者列表

'Stanwarri\SocialPlus\SocialPlusServiceProvider'

运行以下命令

$ php artisan vendor:publish --provider="Stanwarri\SocialPlus\SocialPlusServiceProvider"

社交提供者

[待办 - 从 Socialite 中提取]

config/services.php 中添加提供者配置

"facebook": {
    "client_id": "...",
    "client_secret": "..."
}

处理器

处理器是 SocialPlus 在您的应用程序中执行自定义行为的一种方式

在预授权(授权请求)和后授权(回调请求)期间。

在这里,您可以实现您的登录流程等。

处理器在 config/socialplus.php 中注册,如下所示

<?php

return [
    'authorize_handlers' => [
        'login' => App\Handlers\SocialPlus\LoginHandler::class
    ]
];

建议:处理器应放在 app/Handlers/SocialPlus 文件夹中

示例处理器

namespace App\Handlers\SocialPlus;

use Stanwarri\SocialPlus\AuthorizeHandler;
use Laravel\Socialite\Contracts\User as SocialiteUser;

class LoginHandler implements AuthorizeHandler
{
    public function authorize($provider)
    {
        // Called before any request is made to the provider
    }
    
    public function callback(SocialiteUser $socialiteUser, $accessToken, $provider)
    {
        // Executed after a successful authorization
    }
    
    public function exception($exception, $provider)
    {
        // Executed when an exception occurs / authorization fails
    }
}

完成处理器注册后,您可以创建如下链接;

// - route('socialplus.authorize', ['provider' => 'facebook', 'a' => 'login'])

// - Like So:

<a href="{{ route('socialplus.authorize', ['provider' => 'facebook', 'a' => 'login']) }}">Login With Facebook</a>

注意 'a' 参数吗?... 这就是您用来连接我们刚刚创建的处理器并

这告诉 SocialPlus 使用哪个处理器执行该特定操作。

贡献

[WIP] 此文档是正在进行中的工作,非常欢迎贡献。 :)