目前已有微信小程序登录、微信公众号登录

第三方登录扩展入口

namespace crmeb\services\oauth;


use crmeb\basic\BaseManager;
use crmeb\services\oauth\storage\MiniProgram;
use crmeb\services\oauth\storage\TouTiao;
use crmeb\services\oauth\storage\Wechat;
use think\facade\Config;

/**
 * 第三方登录
 * Class OAuth
 * @package crmeb\services\oauth
 * @mixin Wechat
 * @mixin TouTiao
 * @mixin MiniProgram
 */
class OAuth extends BaseManager
{

    /**
     * 空间名
     * @var string
     */
    protected $namespace = '\crmeb\services\oauth\storage\';

    /**
    * 默认驱动
     * @return mixed
     */
    protected function getDefaultDriver()
    {
        return Config::get('oauth.default', 'wechat');
    }
}

使用第三方登录

默认微信登录方式调用


use crmeb\services\oauth\OAuth;

//默认微信登录
$oauth = new OAuth();

//使用code返回用户信息
$userInfo = $oauth->oauth($code = null, $options = []);

使用微信小程序登录调用


use crmeb\services\oauth\OAuth;

//微信小程序登录
$oauth = new OAuth('mini_program');

$code = 'code';

//使用code返回用户信息
$userInfo = $oauth->oauth( $code = null, $options = [
    'iv'=>$iv,
    'encryptedData'=>$encryptedData
]);

使用微信小程序静默授权登录调用


use crmeb\services\oauth\OAuth;

//微信小程序登录
$oauth = new OAuth('mini_program');

$code = 'code';

//使用code返回用户信息
$userInfo = $oauth->oauth( $code = null, $options = [
    'silence'=>true,
]);

举例增加:头条小程序登录

创建头条小程序登录类\crmeb\services\oauth\storage\TouTiao.php,并需要继承BaseStorage基类,和OAuthInterface接口类,需要完成getUserInfo、oauth两个方法



namespace crmeb\services\oauth\storage;


use crmeb\basic\BaseStorage;
use crmeb\services\oauth\OAuthInterface;

/**
 * 头条小程序登录
 * Class TouTiao
 * @package crmeb\services\oauth\storage
 */
class TouTiao extends BaseStorage implements OAuthInterface
{

    protected function initialize(array $config)
    {
        // TODO: Implement initialize() method.
    }

    //获取用户信息
    public function getUserInfo(string $openid)
    {
        // TODO: Implement getUserInfo() method.
    }

    //授权登录
    public function oauth(string $code = null, array $options = [])
    {
        // TODO: Implement oauth() method.
    }
}
示例头条小程序登录使用方式
use crmeb\services\oauth\storage\TouTiao;

$oauth = new OAuth('tou_tiao');
//或者
$oauth = app()->make(OAuth::class, ['tou_tiao']);

$code = 'code';
//授权用户获取信息
$userInfo = $oauth->oauth($code);

var_dump($userInfo);

//获取用户详细信息
$openid = 'openid';
$userInfo = $oauth->getUserInfo($openid);

var_dump($userInfo);

附件: https://gitee.com/ZhongBangKeJi/CRMEB

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐