专栏首页LIN_ZONEeasywechat (在thinkphp5中使用easywechat完成微信网页认证)

easywechat (在thinkphp5中使用easywechat完成微信网页认证)

由于在easywechat中没有提及在thinkphp中的使用,后来我在http://www.thinkphp.cn/topic/45416.html中找到了有人已经封装了一下,我把自己使用的过程写下来与大家共勉

在thinkphp中安装easywechat

1.使用composer下载

使用命令行进入thinkphp根目录

然后运行下面的命令:

  1. composer require hooklife/thinkphp5-wechat

然后发布配置文件到项目根目录

  1. 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://easywechat.org/zh-cn/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中取即可

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP安装CURL扩展

    ./configure --prefix=/usr/local/bin/curl/

    王亚昌
  • 选择技术方向都要考虑哪些因素

    本文主要是作者读安晓辉老师的《程序员程序员职场进阶 32 讲 》中关于“选择技术方向都要考虑哪些因素”这部分做的一些笔记和自己的思考。在这里分享给各位!

    用户2164320
  • WampServer – 在 Windows 上轻松搭建 PHP 开发环境

    WampServer 是一个 Windows 上的 Apache + PHP + MySQL 开发环境。作为一名 WordPress 主题开发者,我一直使用 W...

    慕白
  • PHP利用淘宝IP接口获取用户IP所在地

    最近在研究PHP解析JSON,怎奈技术不过关,问了一下相关同学,获取到了解决办法,废话不多,直接上代码:

    刺_猬
  • 基础建站:Ubuntu 16.04下安装WordPress程序

    WordPress.com是一个博客寄存服务站点,由Automattic公司所持有。2005年8月8日进行Beta测试,2005年11月21日向公众开放。它使用...

    禹都一只猫olei
  • 深入剖析 Web 服务器与 PHP 应用的通信机制 - 掌握 CGI 和 FastCGI 协议的运行原理

    身为一名使用 PHP 语言开发后端服务的程序猿,我们每天都和 PHP 以及 Web 服务器产生无数次的亲密接触。得益于它们,我们才能够如此快速的构建出令人陶醉的...

    程序员宝库
  • .htaccess 文件使用手册

    除特别注明外,本站所有文章均为慕白博客原创,转载请注明出处来自https://geekmubai.com/programming/146.html

    慕白
  • Java架构体系学习路线图,这六点尤为重要!

    可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

    纯洁的微笑
  • PHP 操作 Redis

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

    琯琯
  • 视频:体系化学习 Java 微服务架构

    可以说,Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。

    Java团长

扫码关注云+社区

领取腾讯云代金券