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

admin3年前PHP教程34
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中laravel调度执行错误解决方法

我们说laravel框架的功能性比较明确,作为全栈框架在代码的运行上是比较简洁的。在对laravel框架安装完成后,我们可以就其中的一些操作为大家展现。本篇要带来的是在laravel中的调度,分为两种...

江苏高防服务器安全防护包含哪些

江苏高防服务器安全防护包含哪些?江苏高防服务器安全防护一般包括以下方面:1.DDoS攻击防护:高防服务器通常具有防御分布式拒绝服务(DDoS)攻击的能力,可以快速识别和拦截大规模的DDoS攻击流量,保...

扬州高防服务器怎么样优势有哪些

扬州高防服务器是一种拥有高防护能力的服务器,具有以下优势:1.高防护能力:扬州高防服务器采用了先进的防护技术和设备,能够有效地抵御各种DDoS攻击、CC攻击等网络攻击,确保服务器稳定运行。2.稳定性强...

oracle清理表空间的方法

oracle清理表空间的方法删去空的表空间,可是不包括物理文件droptablespacetablespace_name;–删去非空表空间,可是不包括物理文件droptablespacet...

PHP中的.htaccess伪静态文件

工具/原料 url重写 iis7 方法/步骤安装iis,这个就不多说了。使用系统自带的启动或关闭windows功能来安装。microsoft/web/downloads/,下载并安装“we...

PHP中多字节字符串操作实例详解

目录前言字符串操作字符串正则操作字符串编码转换HTTP 参数操作其它属性查看总结前言什么是多字节的字符串操作呢?其实不少的同学可能都已经使用过了,但我们还是要从最基础的问题说起。一个字符占几个字节并不...