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

admin3年前PHP教程54
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微信网页授权登入内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

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

相关文章

PHP中垃圾回收相关函数的使用

目录再谈循环引用以及强制清理循环引用开启、关闭及查看循环引用垃圾回收状态强制回收Zend引擎内存管理器使用的内存获取垃圾收集器的信息测试代码:相关文章之前我们已经学习过 PHP 中的引用计数以及垃圾回...

如何在VSCode配置PHP开发环境

一、下载XAMPPXAMPP是一个易于安装的Apache发行版,其中包含MariaDB、PHP和Perl。仅仅需要下载并启动安装程序。XAMPP下载地址官网下载:apachefriends.org/z...

用PHP实现的服务端socket具体实例

实现方法如下:使用到的相关函数: socket_create、socket_set_block、socket_bind、socket_listen、socket_accept、socket_read、...

GPU服务器的运用有哪些呢美国GPU服务器多少钱一台

GPU服务器的运用有哪些呢?1、支持运行安卓模拟器,可支持蓝叠,逍遥,雷电,夜神等。用于手机游戏挂机和自动化脚本运行2、渲染业务场景需要GPU显卡实现图形加速及实时渲染,同时需要大量计算、内存或存储。...

国外站群服务器为何如此受欢迎的原因

国外站群服务器为何如此受欢迎的原因?1、应用国外站群服务器的网站更易于维护,假如应用的网站服务器沒有具备的那麼很多个IP得话,万一某一网站遭受恶意攻击,相同IP绑定了很多个网站,那麼就难以排查是哪个网...

编程入门先学什么(如何学会编程写代码)

编程入门先学什么最近有许多关于学习编程的争辩。不仅仅是由于与软件开发公司公开的待应聘的职位数量相比较契合招聘要求的人远远无法满足缺口,编程也是工资最高和工作满足感最强的许多职业之一。也难怪越来越多的人...