laravel使用組件實(shí)現(xiàn)微信網(wǎng)頁授權(quán)登入
laravel框架中的實(shí)現(xiàn)簡單實(shí)現(xiàn)微信網(wǎng)頁授權(quán)登入
首先引入基于laravel的easywechat的組件,laravel版本5.8
$ cd laravel $ composer require "overtrue/laravel-wechat:~5.0"
參考組件地址:https://github.com/overtrue/laravel-wechat
然后呢因?yàn)橄螺d過程會比較緩慢所以可以先根據(jù)官方提供的方式配置一下該組件的中間件
根據(jù)官方提供的測試代碼在routes/web.php
中定義這個參數(shù)
然后開啟natapp
再訪問在routes/web.php
中定義的user路由
natapp使用方法https://natapp.cn/article/natapp_newbie
注意還有一個動作要做就是發(fā)布配置文件
php artisan vendor:publish --provider="Overtrue\LaravelWeChat\ServiceProvider"
修改應(yīng)用根目錄下的 config/wechat.php
中對應(yīng)的參數(shù)即可;我們可以把信息放到.env
中
模擬授權(quán)
有時候我們希望在本地開發(fā)完成后線上才真實(shí)的走微信授權(quán)流程,這將減少我們的開發(fā)成本,那么你需要做以下兩步:
準(zhǔn)備資料:
以下字段在 scope
為 snsapi_userinfo
時盡可能配置齊全哦,當(dāng)然,如果你的模式只是 snsapi_base
的話只需要 openid
就好了。
use Illuminate\Support\Arr; use Overtrue\Socialite\User 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 中間件之前寫入,比如你可以創(chuàng)建一個全局中間件來完成這件事兒,當(dāng)然了,只在開發(fā)環(huán)境啟用即可。
session([‘wechat.oauth_user.default' => $user])
; // 同理,default
可以更換為您對應(yīng)的其它配置名
事件
你可以監(jiān)聽相應(yīng)的事件,并對事件發(fā)生后執(zhí)行相應(yīng)的操作。
OAuth 網(wǎng)頁授權(quán):Overtrue\LaravelWeChat\Events\WeChatUserAuthorized
// 該事件有以下屬性
$event->user
; // 同 session(‘wechat.oauth_user.default')
一樣
$event->isNewSession
; // 是不是新的會話(第一次創(chuàng)建 session 時為 true)
$event->account
; // 當(dāng)前中間件所使用的賬號,對應(yīng)在配置文件中的配置項(xiàng)名稱
開放平臺路由支持
在配置文件 route 處取消注釋即可啟用。
'open_platform' => [ 'uri' => 'serve', 'action' => Overtrue\LaravelWeChat\Controllers\OpenPlatformController::class, 'attributes' => [ 'prefix' => 'open-platform', 'middleware' => null, ], ],
授權(quán)方成功授權(quán):Overtrue\LaravelWeChat\Events\OpenPlatform\Authorized
授權(quán)方更新授權(quán):Overtrue\LaravelWeChat\Events\OpenPlatform\UpdateAuthorized
授權(quán)方取消授權(quán):Overtrue\LaravelWeChat\Events\OpenPlatform\Unauthorized
開放平臺推送 VerifyTicket:Overtrue\LaravelWeChat\Events\OpenPlatform\VerifyTicketRefreshed
// 事件有如下屬性
$message = $event->payload
; // 開放平臺事件通知內(nèi)容
配置后 http://example.com/open-platform/serve
則為開放平臺第三方應(yīng)用設(shè)置的授權(quán)事件接收 URL。
更多 SDK 的具體使用請參考:https://easywechat.com
到此這篇關(guān)于laravel使用組件實(shí)現(xiàn)微信網(wǎng)頁授權(quán)登入的文章就介紹到這了,更多相關(guān)laravel微信網(wǎng)頁授權(quán)登入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
thinkPHP實(shí)現(xiàn)將excel導(dǎo)入到數(shù)據(jù)庫中的方法
這篇文章主要介紹了thinkPHP實(shí)現(xiàn)將excel導(dǎo)入到數(shù)據(jù)庫中的方法,涉及thinkPHP結(jié)合PHPExcel插件操作excel與數(shù)據(jù)庫的相關(guān)技巧,需要的朋友可以參考下2016-04-04php生成EAN_13標(biāo)準(zhǔn)條形碼實(shí)例
2013-11-11Yii2組件之多圖上傳插件FileInput的詳細(xì)使用教程
這篇文章主要介紹了Yii2組件之多圖上傳插件FileInput的詳細(xì)使用教程的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06ecshop適應(yīng)在PHP7的修改方法解決報錯的實(shí)現(xiàn)
下面小編就為大家?guī)硪黄猠cshop適應(yīng)在PHP7的修改方法解決報錯的實(shí)現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11