使你的應用快速支持微信登錄功能
演示站點:http://ai.1zh888.com 手機微信也可以直接打開
https://www.bilibili.com/video/BV1it421J7gb
注:視頻中演示的是最初的版本,現(xiàn)已對webman ai 進行適配,可去演示站點體驗
基于官方的用戶模塊開發(fā)的微信登錄模塊,也可以對接自己的應用進行二開,升級不影響使用
需要準備一個公眾號和開放平臺網(wǎng)站應用,如果沒有開放平臺賬號,則不能使用PC端開放平臺掃碼登錄,不過可以使用掃碼關注公眾號實現(xiàn)登錄的功能,類似效果可參考https://www.processon.com/ 這個網(wǎng)站的微信登錄
微信公眾號后臺:https://mp.weixin.qq.com
微信開放平臺:https://open.weixin.qq.com
如果使用公眾號掃碼登錄,需要在公眾號后臺配置回調(diào)地址為
https://你的域名/app/sns/index/eventCallback
安裝插件
composer require overtrue/wechat ^5.0
// 如果不需要使用掃碼關注公眾號實現(xiàn)登錄功能,則不需要安裝此插件
composer require -W webman/think-cache
復制 plugin/sns/config/wechat.example.php 重命名為 wechat.php,并按格式填寫參數(shù)即可
<?php
return [
'wechat' => [
// 是否啟用手機端公眾號登錄
'enable' => false,
// 公眾號appid
'appid' => '',
// 公眾號secret
'secret' => '',
// 授權(quán)成功后跳轉(zhuǎn)的頁面,為空則默認跳到首頁
// 注意:這里的跳轉(zhuǎn)地址不能是授權(quán)頁地址
// 例如:https://www.orkerman.net 或 /app/gpt
'redirect' => '',
// 以下配置是啟用公眾號PC端掃碼登錄時填寫,如不啟用,可以為空
// 是否啟用公眾號PC端掃碼登錄,如果同時啟用公眾號PC端掃碼登錄和開放平臺登錄,將優(yōu)先使用開放平臺登錄
'scan-enable' => false,
// 公眾號token
'token' => '',
// 公眾號EncodingAESKey
'aes-key' => '',
// 公眾號PC端掃碼登錄成功后跳轉(zhuǎn)的頁面,和上面一個配置類似
'scan-redirect' => '',
],
'platform' => [
// 是否啟用開放平臺登錄
'enable' => false,
// 開放平臺appid
'appid' => '',
// 開放平臺secret
'secret' => '',
// 授權(quán)成功后跳轉(zhuǎn)的頁面,為空則默認跳到首頁
// 注意:這里的跳轉(zhuǎn)地址不能是授權(quán)頁地址
// 例如:https://www.orkerman.net 或 /app/gpt
'redirect' => '',
]
];
配置完成后訪問:
手機微信:http://你的域名/app/sns
電腦:http://你的域名/app/user/login
就可以看到效果了
如果需要根域名登錄效果
在 config/route.php 中新增一條:
Route::any('/',[\plugin\sns\app\controller\IndexController::class,'index'])->name('wechat.auth');
注意不要與其他路由沖突
由于接管了微信公眾號消息,有些朋友可能需要對微信消息實現(xiàn)自定義處理,可以監(jiān)聽事件來完成具體的操作
composer require webman/event
return [
// 用戶注冊事件,會返回用戶id,開發(fā)者可以根據(jù)用戶id做后續(xù)處理
'sns.user.register' => [
[app\event\User::class, 'register']
],
// 微信消息事件,會將微信官方消息內(nèi)容通過事件機制傳遞給開發(fā)者,開發(fā)者可以自定義處理
'sns.wechat.message' => [
[app\event\wechat::class, 'message']
]
];
參考官方事件文檔:http://www.wtbis.cn/doc/webman/components/event.html
如果在安裝或使用方面有疑問,請一定聯(lián)系我!
QQ:438907007
微信:chunboo