{{userInfo.nickname}}
用户设置 退出登录

{{wikiTitle}}

登录

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

第三方登录扩展入口

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);
{{cateWiki.like_num}}人点赞
0人点赞
评论({{cateWiki.comment_num}}) {{commentWhere.order ? '评论从旧到新':'评论从新到旧'}} {{cateWiki.page_view_num}}人看过该文档
评论(0) {{commentWhere.order ? '评论从旧到新':'评论从新到旧'}} 44人看过该文档
评论
{{item.user ? item.user.nickname : ''}} (自评)
{{item.content}}
{{item.create_time}} 删除
{{item.like ? item.like.like_num : 0}} {{replyIndex == index ? '取消回复' : '回复'}}
评论
{{items.user ? items.user.nickname : '暂无昵称'}} (自评)
{{items.content}}
{{items.create_time}} 删除
{{items.like ? items.like.like_num : 0}} {{replyIndexJ == (index+'|'+indexJ) ? '取消回复' : '回复'}}
评论
目录
  • {{item}}