mmfei/hyperf-socialite

socialite

v0.0.5 2023-11-11 07:39 UTC

This package is auto-updated.

Last update: 2024-04-11 08:27:18 UTC


README

这个仓库只是为了兼容php7而做 , 代码全部改造来源 cblink/hyperf-socialite

php 7.4 + hyperf 2.2  v0.0.3
php 7.4 + hyperf 2.1  v0.0.2
php 7.4 + hyperf 2.0  v0.0.1

About

cblink/hyperf-socialite 组件衍生于 laravel/socialite 组件的,我们对它进行了一些改造,大部分功能保持了相同。在这里感谢一下 Laravel 开发组,实现了如此强大好用的社会化登陆组件。

Installing

# 安装
composer require mmfei/hyperf-socialite -vvv

# 创建配置文件
php bin/hyperf.php vendor:publish mmfei/hyperf-socialite

Configure

配置文件位于 config/autoload/socialite.php,如文件不存在可自行创建

<?php

return [
    'facebook' => [
        'client_id' => '',
        'client_secret' => '',
        // 其他provider中需要使用的配置
        // ...
    ]   
    // qq,weixin...    
];

Usage

组件已经提供了许多已支持的社会化登陆组件,只需要将它配置到 config/autoload/listeners.php 中即可。

return [
    HyperfSocialiteProviders\Facebook\FacebookExtendSocialite::class,
];

控制器中使用

<?php

use Cblink\Hyperf\Socialite\Contracts\SocialiteInterface;

class Controller 
{
    
    /**
    * @param SocialiteInterface $socialite
     * @return \Hyperf\HttpServer\Contract\ResponseInterface
     */
    public function redirectToProvider(SocialiteInterface $socialite)
    {
        // 重定向跳转
       $redirect = $socialite->driver('facebook')->redirect();
       
       // 使用新的配置跳转
       $socialite->driver('facebook')->setConfig([
            'client_id' => 'xxx',
            'client_secret' => 'xxxx',
       ])  
       
       return $redirect; 
    }
    
    /**
    * @param SocialiteInterface $socialite
    */
    public function handleProviderCallback(SocialiteInterface $socialite)
    {
        // 获取用户信息
       $user = $socialite->driver('facebook')->user();
       
       //
       // $user->token;
    }


}

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

The code contribution process is not very formal. You just need to make sure that you follow the PSR-0, PSR-1, and PSR-2 coding guidelines. Any new code contributions must be accompanied by unit tests where applicable.

License

MIT