laravel使用组件实现微信网页授权登入

admin3年前PHP教程66
laravel框架中的实现简单实现微信网页授权登入

首先引入基于laravel的easywechat的组件,laravel版本5.8

$ cd laravel$ composer require "overtrue/laravel-wechat:~5.0"

参考组件地址:github/overtrue/laravel-wechat

然后呢因为下载过程会比较缓慢所以可以先根据官方提供的方式配置一下该组件的中间件


根据官方提供的测试代码在routes/web.php中定义这个参数


然后开启natapp 再访问在routes/web.php中定义的user路由
natapp使用方法natapp/article/natapp_newbie

注意还有一个动作要做就是发布配置文件

php artisan vendor:publish --provider="OvertrueLaravelWeChatServiceProvider"

修改应用根目录下的 config/wechat.php 中对应的参数即可;我们可以把信息放到.env中


模拟授权

有时候我们希望在本地开发完成后线上才真实的走微信授权流程,这将减少我们的开发成本,那么你需要做以下两步:

准备资料:
以下字段在 scope 为 snsapi_userinfo 时尽可能配置齐全哦,当然,如果你的模式只是 snsapi_base 的话只需要 openid 就好了。

use IlluminateSupportArr;use OvertrueSocialiteUser as SocialiteUser;$user = new SocialiteUser(["id" => Arr::get($user, "openid"),"name" => Arr::get($user, "nickname"),"nickname" => Arr::get($user, "nickname"),"avatar" => Arr::get($user, "headimgurl"),"email" => null,"original" => [],"provider" => "WeChat",]);

将资料写入 session:
注意:一定要在 OAuth 中间件之前写入,比如你可以创建一个全局中间件来完成这件事儿,当然了,只在开发环境启用即可。

session([‘wechat.oauth_user.default" => $user]); // 同理,default 可以更换为您对应的其它配置名

事件
你可以监听相应的事件,并对事件发生后执行相应的操作。

OAuth 网页授权:OvertrueLaravelWeChatEventsWeChatUserAuthorized
// 该事件有以下属性
$event->user; // 同 session(‘wechat.oauth_user.default") 一样
$event->isNewSession; // 是不是新的会话(第一次创建 session 时为 true)
$event->account; // 当前中间件所使用的账号,对应在配置文件中的配置项名称

开放平台路由支持
在配置文件 route 处取消注释即可启用。

"open_platform" => ["uri" => "serve","action" => OvertrueLaravelWeChatControllersOpenPlatformController::class,"attributes" => ["prefix" => "open-platform","middleware" => null,],],

授权方成功授权:OvertrueLaravelWeChatEventsOpenPlatformAuthorized
授权方更新授权:OvertrueLaravelWeChatEventsOpenPlatformUpdateAuthorized
授权方取消授权:OvertrueLaravelWeChatEventsOpenPlatformUnauthorized
开放平台推送 VerifyTicket:OvertrueLaravelWeChatEventsOpenPlatformVerifyTicketRefreshed
// 事件有如下属性
$message = $event->payload; // 开放平台事件通知内容
配置后 example/open-platform/serve 则为开放平台第三方应用设置的授权事件接收 URL。

更多 SDK 的具体使用请参考:easywechat

到此这篇关于laravel使用组件实现微信网页授权登入的文章就介绍到这了,更多相关laravel微信网页授权登入内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

高性能的江苏BGP高防服务器租用怎么选择

高性能的江苏BGP高防服务器租用怎么选择?选择江苏地区的高性能BGP高防服务器租用需要考虑以下因素:1.优质的机房设施:选择机房设施完善,网络设备先进,机器配置高端的正规机房,能够提供更加稳定的网络环...

详解PHP Swoole长连接常见问题

目录连接失效问题如何解决如何维持长连接结论连接失效问题例子其中,Redis常见的报错就是:配置项:timeout报错信息:Error while reading line from the serve...

PHP加MySQL消息队列深入理解

消息队列:在消息的传输过程中保存消息的容器。消息队列管理器在将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时接收者不可用,消息队列会保留消息,直到可以...

租用江苏BGP高防服务器安全吗

租用江苏BGP高防服务器安全吗?租用江苏BGP高防服务器是比较安全的,但也要注意以下几点:选择正规的服务商:选择知名度高、信誉好的正规服务商,确保服务器的质量和安全性。配置安全防护:在服务器中安装防火...

GPU是显卡的心脏吗韩国GPU服务器租用哪里有

在没有GPU之前,基本上所有的任务都是交给CPU来做的。有GPU之后,二者就进行了分工,CPU负责逻辑性强的事物处理和串行计算,GPU则专注于执行高度线程化的并行处理任务(大规模计算任务)。GPU只是...

浅谈Swoole并发编程的魅力

目录场景介绍并发编程编码实现并发难题数据同步问题思维转变场景介绍假设我们要做一个石头剪刀布的Web游戏,3个玩家同时提交竞猜后显示胜者。在传统串行化Web编程中,我们一般思路是这样:设置form表单,...