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类时, ...
- 微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的
微信小程序红包开发 小程序发红包 开发过程中遇到的坑 微信小程序红包接口的 最近公司在开发一个小程序红包系统,客户抢到红包需要提现.也就是通过小程序来给用户发红包. 小程序如何来发红包呢?于是我想 ...
随机推荐
- Arcmap内容列表刷新
Arcmap内容列表刷新ILayer pLayer = pFDOGLayer as ILayer; if (!pLayer.Visible) ...
- Unity Inspector面板常用的属性
在扩展Unity的时候,往往会用到一些属性,这里将常用的列一下. 1.属性只读: #if UNITY_EDITOR using UnityEditor; #endif using UnityEngin ...
- 《闲聊 ASP.NET Core》系列直播清单
[闲聊 ASP.NET Core]第一期:项目与应用结构 [闲聊 ASP.NET Core]第二期:Web Host 初始化与生命周期事件 [闲聊ASP.NET Core]第三期:应用程序配置 [闲聊 ...
- 对Faster R-CNN的理解(3)
2.2 边框回归 边框回归使用下面的几个公式: xywh是预测值,带a的是anchor的xywh,带*的是GT Box的xywh,可以看作是anchor经过一定的变换回归到附近的GT Box.
- GIMP使用笔记
一:背景透明化 1:选中背景:选择——按颜色——点击图片背景 2:透明化:图层——透明化——颜色到Alpha——选择背景颜色,转换为alpha透明 二:裁剪图片 1:选择:工具箱——选择套具——使用套 ...
- 通过Comparable来实现对自身的比较
import org.apache.commons.lang.builder.CompareToBuilder; import org.apache.commons.lang.builder.Equa ...
- 超简单的okHttpUtils封装(下)
版权声明:转载请注明出处:http://blog.csdn.net/piaomiao8179 https://blog.csdn.net/piaomiao8179/article/details/ ...
- SNF软件开发机器人平台2018-发展升级履历-零编程时代
一.SNF软件开发机器人产品白皮书 二.SNF开发机器人教程:链接:https://pan.baidu.com/s/1Qpomg11c_1b1NKY5P7e4Bw 密码:jwc3 三.SNF软件开发机 ...
- Android 看源码学 Binder
参考:https://jekton.github.io/2018/04/07/binder-why-RemoteListenerCallback-works/ 参考:https://jekton.gi ...
- Troubleshooting Scheduler Autotask Issues (Doc ID 1561498.1)
In this Document Purpose Troubleshooting Steps References APPLIES TO: Oracle Database - Enterp ...