Fastadmin中使用小程序登录

在fastadmin中使用三方登录插件原有没有小程序登录,需要增加小程序登录

目录

增加小程序登录

安装

修改配置

增加服务提供者

注册服务提供者

登录调用

总结


增加小程序登录

安装

首先在插件管理中找到三方登录插件安装

安装最新的1.4.7

修改配置

在third/config.php文件中,weibo配置下仿照上面的配置增加wechatmini配置,

如下:

php 复制代码
[
    'name' => 'wechatmini',
    'title' => '微信小程序',
    'type' => 'array',
    'content' => [
        'app_id' => '',
        'app_secret' => '',
        'scope' => 'snsapi_userinfo',
    ],
    'value' => [
        'app_id' => '',
        'secret' => '',
        'scope' => 'get_user_info',
    ],
    'rule' => 'required',
    'msg' => '',
    'tip' => '',
    'ok' => '',
    'extend' => '',
],

修改后保存后,在三方登录配置中增加微信小程序配置内容,如下:

增加服务提供者

在third/library中增加wechatmini.php文件,为小程序登录处理。

文件内容如下:

php 复制代码
<?php

namespace addons\third\library;

use fast\Http;
use think\Config;
use think\Session;
use EasyWeChat\Factory;

/**
 * 微信小程序
 */
class Wechatmini
{
    /**
     * 配置信息
     * @var array
     */
    private $config = [];

    public function __construct($options = [])
    {
        if ($config = Config::get('third.wechatmini')) {
            $this->config = array_merge($this->config, $config);
        }
        $this->config = array_merge(
$this->config, is_array($options) ? $options : []);
    }


    /**
     * 获取用户信息
     * @param array $params
     * @return array
     */
    public function getUserInfo($params = [])
    {
        $params = $params ?: $_GET;
        if (isset($params['code'])) {
            if ($params['code']) {
                $config = $this->config;
                $app = Factory::miniProgram($config);
                $sns = $app->auth->session($params['code']);
                if (isset($sns['openid']) && $sns['openid']) {
                    return $sns;
                }
            }
        }
        return [];
    }
}

注册服务提供者

在third/library/Application.php中注册服务提供者。

登录调用

在api/User.php的third方法中处理登录时,可通过platform参数传递wechatmini,

调用小程序登录方法,如下:

总结

在fastadmin中使用三方登录插件原有没有小程序登录,需要增加小程序登录

相关推荐
雪度娃娃2 小时前
Asio异步读写——连接的安全回收问题
开发语言·c++·安全·php
陌路205 小时前
详解C++ 高性能网络库 muduo 的精简日志模块
开发语言·c++·php
我是伪码农6 小时前
小程序100-125
开发语言·小程序·php
c++逐梦人6 小时前
epoll ET服务器(Reactor模式)
运维·服务器·php
牛奔6 小时前
codebuddy 桌面版 如何配置自己的模型
运维·服务器·开发语言·php
跨境数据猎手6 小时前
代购系统技术选型全复盘:Laravel / Go / 自研 / SaaS 怎么选
爬虫·php·laravel
祁白_8 小时前
PHP无参读取文件与RCE总结
安全·php·writeup·总结·rce
XiYang-DING8 小时前
【Java EE】IPv6
java·java-ee·php
likerhood8 小时前
Java 异常处理:从 try-catch-finally 到项目最佳实践
java·开发语言·php
曦夜日长9 小时前
Linux系统篇,开发工具(六):文件的编译配置、调试的理解、cgdb和gdb的操作使用
java·linux·php