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