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

admin3年前PHP教程35
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之app消息推送案例教程

如何用php实现app消息推送现在有很多的消息推送厂商,比如阿里云的消息推送,极光推送,融云的消息推送。他们的原理都是把sdk内置在app里面,达到消息推送的目的,通过一张图来了解一下,看不懂不要紧,...

详解Hbuilder中PHP环境配置

HBuilder是非常高效、快速的网站开发编辑器,我们用Hbuilder做网站后台php开发时,如果想要点击工具栏上的浏览器按钮进行快速预览,本文将详细介绍在前端开发神器Hbuilder中集成运行PH...

法国服务器租用注意什么问题

法国服务器租用注意什么问题?租用法国服务器时需要注意以下几个问题:法律合规性:在法国进行服务器租赁的企业必须遵守法国的相关法律法规,包括税务法、金融法、数据隐私法等。数据安全:为了保护企业的数据安全,...

CakePHP的安装的简单方法

在对于CakePHP的作用有了初步认识后,我们可以下载CakePHP来进行一些使用。在安装前,要检查php的版本情况,防止CakePHP框架出现不适配的情况。对于具体的框架组装,会涉及到依赖库和Com...

海外多ip服务器可以指定出口ip吗

一般来说,海外多IP服务器可以指定出口IP地址。不过这取决于你使用的服务器提供商和服务级别协议(SLA)。一些服务器提供商可能会提供具有IP地址管理功能的控制面板,允许你指定使用哪个IP地址作为出口I...

PHP反序列化字符串逃逸实例详解

通过CTF比赛了解PHP反序列化,记录自己的学习。借用哈大佬们的名言任何具有一定结构的数据,如果经过了某些处理而把结构体本身的结构给打乱了,则有可能会产生漏洞。0CTF 2016piapiapia--...