easywechat (在thinkphp5中使用easywechat完成微信网页认证)
由于在easywechat中没有提及在thinkphp中的使用,后来我在http://www.thinkphp.cn/topic/45416.html中找到了有人已经封装了一下,我把自己使用的过程写下来与大家共勉
在thinkphp中安装easywechat
1.使用composer下载
使用命令行进入thinkphp根目录
然后运行下面的命令:
- composer require hooklife/thinkphp5-wechat
然后发布配置文件到项目根目录
- php think wechat:config
然后你会看到application目录下多了一个extra文件夹,里面有一个wechat.php
这样就算是引入成功了
然后
填写配置文件需要填写的项
示例:
'debug' => true,
/**
* 账号基本信息,请从微信公众平台/开放平台获取
*/
'app_id' => '......', // AppID
'secret' => '......', // AppSecret
'token' => '......', // Token
'aes_key' => '',
'oauth' => [
'scopes' => ['snsapi_userinfo'],
'callback' => '回调地址',
],
然后,在原代码基础上创建一个控制器(与微信相关):Wechat1.php,
在里面定义一个变量app
$options = Config::get('wechat');
$app = new Application($options);
这样就能够使用app变量了,其他的用法参照文档https://www.easywechat.com/docs即可
配置和原来类似,我是在Wechat1.php中定义一个serve方法
public function serve(){
$server = self::$app->server;
$server->setMessageHandler(function ($message) {
return '你好';
});
$server->serve()->send();
}
在微信公众号后台验证token的url写能够访问到这个serve方法的链接即可验证成功
下面重点说明我使用easywechat进行网页授权过程
在需要授权的控制器Personal.php中的写了
static $app;
public function _initialize()
{
if (empty(session('id'))){
self::$app = Wechat1::return_app();
$oauth = self::$app->oauth;
session('target_url',$_SERVER['PATH_INFO']);
if (empty(session('wechat_user'))){
$oauth->redirect()->send();
}else{
$user = session('wechat_user');
$open_id = $user['original']['openid'];
//查询数据库中用户的账号的openid中是否有值,有值说明用户的微信与账号绑定
$student_no = self::check_login($open_id);
if ($student_no!=0){
session('id',$student_no);
$this->redirect(session('target_url'));
}else{
$this->redirect('index/Index/login');
}
}
}
}
然后在Wechat1.php中写了一个授权回调的方法
public function oauth(){
$oauth = self::$app->oauth;
$user = $oauth->user();
session('wechat_user',$user->toArray());
$targetUrl = session('target_url');
$this->redirect($targetUrl);
}
注:上面的配置文件中的回调函数就写能够找到oauth方法的地址即可
这样就能够完成微信网页授权,授权过的微信的用户信息存在session中,之后用到该用户信息的时候,只需要从session中取即可
easywechat (在thinkphp5中使用easywechat完成微信网页认证)的更多相关文章
- ABP中module-zero快速集成微信用户认证
https://personball.com/abp/2019/01/01/introduce-abp-module-zero-external-authenticate
- Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息
转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...
- 在后台业务管理系统中使用Autofac实现微信接口的处理
在后台业务管理系统中使用Autofac实现微信接口的处理,我们只需要把相关使用到的DLL放到BIN目录里面即可,通过IOC控制反转方式实现对接口的调用.在实现在业务系统里面,我们本身程序可能已经依赖了 ...
- thinkphp5中使用phpmailer实现发送邮件功能(转载)
一.开启SMTP服务(使用php发送邮件需要用到SMTP服务,这里以163邮箱的SMTP服务为例). 1.登录163邮箱,在首页上找到“设置”. 2.选择开启的服务,一般都全选,POP3/SMTP/I ...
- thinkphp5中使用PHPExcel(转载)
thinkphp5中可以使用composer来获取第三方类库,使用起来特别方便,例如:可是使用composer下载PHPMailer,think-captcha(验证码)等等…… 接下来说一下怎么使用 ...
- thinkphp5中如何使用 usort
thinkphp5中如何使用 usort 一.总结 一句话总结:其实比较函数加上命名空间就好啦,不然找不到 比较函数加命名空间 数组做usort的第二个参数 usort($question_list, ...
- thinkphp5中的配置如何使用
thinkphp5中的配置如何使用 一.总结 一句话总结:先加载配置,然后读取配置即可 加载配置 读取配置 Config::load(APP_PATH.'fry_config.php');\\加载配置 ...
- thinkphp5中的一些关于命名空间的tisp
1.thinkphp5中公共函数文件common中,不需要use,也可以直接使用vendor中的类文件. 2.在类前面的反斜杠作用是,直接使用最外层的命名空间,有时不想use某个X类,却想使用X类时, ...
- 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的
微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的 最近公司在开发一个小程序红包系统,客户抢到红包需要提现.也就是通过小程序来给用户发红包. 小程序如何来发红包呢?于是我想 ...
随机推荐
- Ubuntu 18.04 安装Virtual Box or VMWare workstation Pro 14
Linux相关的知识:https://www.cnblogs.com/dunitian/p/4822808.html#linux Virtual Box:sudo apt-get install vi ...
- Office Web Apps 2013 修改Excel在线查看文件大小限制
前言 最近搭建了一个OWA 2013环境,帮客户实现在线查看Excel文档,不过,使用过程中出现了错误,文件大小超过10MB就无法预览了,查了好久,发现需要使用PowerShell命令进行修改. 1. ...
- socket.io的websocket示例
写了一个简单的demo,直接上代码吧.用的时候注意一下版本号,可能 socket.io 的 API 有修改~ 效果图 index.html <!DOCTYPE <!DOCTYPE html ...
- Thymeleaf-语法整理
Thymeleaf其他案例看其他网站 http://www.cnblogs.com/hjwublog/p/5051732.html http://blog.csdn.net/u012706811/ar ...
- Glide终于解决了同时绑定多个webp格式图片的问题
前端时间,要给项目换个图片加载的库,使用Glide 3.7版本进行测试, 发现在快速滑动列表(每个item都会加载一个app的图标,采用webp格式,即同时加载多个webp格式)的时候,一屏至少有2- ...
- centos 环境搭建jenkins服务
1.下载jenkins war包 https://jenkins.io/download/ 选择Generic Java package (.war)下载2.下载apache tomcat 8 htt ...
- blender split mesh
https://www.youtube.com/watch?v=yFpxQxEWNc4
- [druid]大数据挑战——如何使用Druid实现数据聚合
-- 知道你为什么惧组件很多的一些开源软件? 因为缺乏阅读能力. 最近我接手了druid+kafka+elk一套等日志系统. 但是我对druid很陌生, 周旋了几天, 官网文档快速开始照着做了下. 看 ...
- java 查看SOAP请求报文
log.info("ESB 请求URL = " + cachedEndpoint.toString());//打印SOAP请求报文 add by LinJC on 20170120 ...
- 6. 从Encoder-Decoder(Seq2Seq)理解Attention的本质
1. 语言模型 2. Attention Is All You Need(Transformer)算法原理解析 3. ELMo算法原理解析 4. OpenAI GPT算法原理解析 5. BERT算法原 ...