morrelinko/laravel5-socialplus

此包已被废弃,不再维护。没有推荐替代包。
此包的最新版本(dev-master)没有提供许可证信息。

dev-master 2015-07-31 07:49 UTC

This package is not auto-updated.

Last update: 2024-08-03 16:50:38 UTC


README

安装

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

将此内容追加到您的 config/app.php 文件中服务提供者列表

'Morrelinko\SocialPlus\SocialPlusServiceProvider'

运行以下命令

$ php artisan vendor:publish --provider="Morrelinko\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 Morrelinko\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] 这份文档还在进行中,非常欢迎贡献。 :)