?3? ???? ?? Hyperf ?????? ???? ??
??:
???? ????? ?3? ???? ?? ????? ??????? ?? ??? ?????. ?3? ???? ?? ???? ?3? ???? ?? ?? ??? ???? ?? ????? ??????? ???? ? ???? ???? ?? ??? ??? ??? ??? ?? ???? ? ????. ? ????? ?? ?? ??? ?? Hyperf ?????? ???? ?? ??? ??? ???? ??? ?????.
1. ??
?? ?? ???? ???? ?? ? ?? ??? ??? ???? ???.
- ?? ?? ???? ??? ????? ??????? ???? QQ? ?? ?? ??? ??? ?????. ???, WeChat ?? ??? ? ?? AppID, AppSecret ? ??? ??? ????.
- Hyperf ?????? ???? ? ????? ????.
2. ??? ??? ??
???? ?? ?????? ?? ??? ???? Hyperf ?????? ???? ?? ??? ?? ???? ?????.
composer require hyperf/socialite
3. ?? ?? ??
Hyperf ???? ?? ????? config/autoload/
????? socialite.php
?? ??? ???? ?? ??? ?????. config/autoload/
目錄下添加 socialite.php
配置文件,并添加以下內(nèi)容:
<?php return [ 'default' => [ 'wechat' => [ 'client_id' => env('WECHAT_CLIENT_ID', ''), 'client_secret' => env('WECHAT_CLIENT_SECRET', ''), 'redirect' => env('WECHAT_REDIRECT', ''), ], 'qq' => [ 'client_id' => env('QQ_CLIENT_ID', ''), 'client_secret' => env('QQ_CLIENT_SECRET', ''), 'redirect' => env('QQ_REDIRECT', ''), ], // 更多第三方平臺的配置信息... ], ];
上述配置文件中的 WECHAT_CLIENT_ID
、WECHAT_CLIENT_SECRET
、WECHAT_REDIRECT
、QQ_CLIENT_ID
、QQ_CLIENT_SECRET
、QQ_REDIRECT
等字段需要替換為開發(fā)者在對應(yīng)平臺上申請的信息。
四、創(chuàng)建控制器
在Hyperf項目中創(chuàng)建一個控制器,例如 LoginController
,并添加以下方法:
<?php declare(strict_types=1); namespace AppController; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationRequestMapping; use PsrHttpMessageResponseInterface; /** * @Controller */ class LoginController { /** * @RequestMapping(path="/login/{platform}", methods="GET") */ public function redirectToThirdParty(string $platform): ResponseInterface { return context() ->getContainer() ->get(HyperfSocialiteSocialiteManager::class) ->driver($platform) ->redirect(); } /** * @RequestMapping(path="/login/{platform}/callback", methods="GET") */ public function handleThirdPartyCallback(string $platform): ResponseInterface { $user = context() ->getContainer() ->get(HyperfSocialiteSocialiteManager::class) ->driver($platform) ->user(); // 在此處處理用戶登錄邏輯,例如創(chuàng)建用戶、更新用戶信息等 return $this->generateResponse(); } private function generateResponse(): ResponseInterface { // 生成登錄成功后的響應(yīng) return $response; } }
五、使用第三方登錄
在頁面中添加第三方登錄的入口,例如:
<a href="/login/wechat">使用微信登錄</a> <a href="/login/qq">使用QQ登錄</a>
當(dāng)用戶點擊對應(yīng)的鏈接后,會跳轉(zhuǎn)到第三方平臺的登錄授權(quán)頁面。
六、處理回調(diào)數(shù)據(jù)
當(dāng)用戶在第三方平臺上完成登錄授權(quán)后,會跳轉(zhuǎn)回我們的應(yīng)用程序,并調(diào)用回調(diào)方法 handleThirdPartyCallback
。在該方法中,我們可以通過 user()
方法獲取到用戶在第三方平臺上的基本信息,例如頭像、昵稱等。在此處,我們可以根據(jù)第三方平臺返回的信息,判斷用戶是否已經(jīng)在我們的應(yīng)用程序中注冊,如果沒有,則可以在此處完成用戶的自動注冊。
七、完善登錄邏輯
在登陸成功后,我們可以根據(jù)業(yè)務(wù)需求,生成用戶的登錄狀態(tài)并返回一個響應(yīng)給用戶,例如生成 JWT Token,設(shè)置 Cookie 等。
八、總結(jié)
通過使用Hyperf框架和社區(qū)提供的 hyperf/socialite
rrreee
WECHAT_CLIENT_ID
, WECHAT_CLIENT_SECRET
, WECHAT_REDIRECT
, QQ_CLIENT_ID
, QQ_CLIENT_SECRET
? ?? ??? QQ_REDIRECT
?? ??? ?? ????? ???? ??? ??? ????? ???. ????4. ????? ??????? LoginController
? ?? ????? ???? ?? ???? ?????: ??rrreee??5. ?? ???? ?????. ??? ??(?: ??rrreee??) ???? ?? ??? ???? ?? ???? ??? ?? ???? ?????. ????6. ?? ??? ???? ???? ?? ????? ??? ??? ???? ???????? ??? ?? ??? handleThirdPartyCallback
? ?????. ? ????? user()
???? ?? ?? ????? ???, ??? ? ???? ?? ??? ?? ? ????. ???? ?? ????? ??? ??? ???? ???? ??????? ????? ??? ??? ? ????. ??? ?? ?? ???? ???? ?? ??? ??? ? ????. ????7. ??? ?? ???? ????? ???? ? JWT ?? ??, ?? ?? ? ???? ??? ?? ???? ??? ??? ???? ????? ??? ??? ? ????. ????8. ????Hyperf ?????? ?????? ???? hyperf/socialite
?? ???? ???? ?? ??? ??? ??? ??? ? ????. ? ????? ??? ??? ??, ?? ?? ??, ???? ?? ? ?? ??? ?? WeChat ? QQ? ?? ??? ??? ??? ?????. ?? ?? ??????? ??? ?? Weibo, GitHub ?? ?? ?? ??? ??? ? ??? ?? ????. ? ??? Hyperf?? ?? ??? ??? ???? ? ?? ??? ??? ? ??? ????. ??? ??? ?? ???? Hyperf ?????? ???? ??? ?? ?????. ??? ??? PHP ??? ????? ?? ?? ??? ?????!

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











??? ??? ???? ?????? ?? ?? ????, ?? ???? ???? ? ???? ??????. ??? ??? ???? ?? ??? ???? ?? P2P ???? ???? ????? ? ????. ?? ???? ??? ??? ???? ??? ?? ???????. 1. ??? ??? ?????? ??? ??? P2P(Peer-to-Peer) ????? ???? ? ???? ?????. ??? ??? ?? ???? ??? ???? ?? ???? ??? ?? ? ????? ??? ? ????. ???? ???? ??? ???? ??

mdf ??, mds ?? ??? ??? ??? ???? ???? ??? ??? ???? ???? ???? ??? ? ?? ?????. ??? ??? ????? ??? ?? ??? ?? ??? ???. ? ????? ???? ?? ??? mdf ? mds ??? ?? ???? ?? ??? ?????. ?? mdf ??? mds ??? ??? ???? ???. mdf? CD/DVD ??? ??? ?????, mds ??? mdf ??? ????? ?????.

foobar2000? ???? ?? ???? ?? ? ?? ????????. ?? ??? ??? ??? ??? ?????. ?? ????? ??? ??? ???? ?? ????? ??? ?? ??? ?? ? ????. ????? ?? ???? ?????. ? ??? ?? ???? ???? ?? ?? ??? ?????. ????? ???? ???? ???? ???? ????. ?? ??? ??? ??? ????, ??? ???? ?? ??? ?????, ??? ??? ??? ??? ???? ?? ?? ????? ?????. ?? ??? ???? ??? ?? ??? ?????. ??? ???? ?? ?? ??? ????? ??? ?? ??? ?? ??????. ??? ?? ????

CrystalDiskMark? ?? ? ??? ??/?? ??? ??? ???? ?? ????? ?? HDD ???? ?????. ???? ?????? CrystalDiskMark ??? crystaldiskmark ???? ???????~ 1. CrystalDiskMark ?? CrystalDiskMark? ??? ?? ????? ??? ???? ????(SSD)? ?? ? ?? ??? ??? ???? ? ?? ???? ??? ?? ??? ?????. ). ??? I/O ??. ?? Windows ?? ?????? ??? ???? ?????? ??? ??? ??? ???? ?? ???? ??? ??? ??? ???? ???? ??? ?? ?????.

?? ????: pip ?? ?? ?? ?? ? ????? Python? ??? ??? pip? Python ??? ??? ?? ?? ??? ?????. ??? pip? ???? ???? ??? ? ?? ???? ???? ???? ??? ?? ?????. ?? ????? pip? Python ?? ??? ?? ?? ???? ???? ???????, ??? ??? ?? ??? ?? ? ?? ???? ??? ??? ? ?? ?????. ???? ??? ????? ?? pip ?? ??? ??? ? ????. pip ?? ??? ?????? ?? ??? ??

MetaMask(???? Little Fox Wallet???? ?)? ???? ??? ?? ??? ?? ????????. ?? BTCC? MetaMask ??? ?? ???? ?????. ??? ? MetaMask ??? ???? ??? ????? ??? ???? ??? ??? ? ??? ? ????? 20 USDT ??? ???? ?? ? ????. BTCCMetaMask ?? ??????? MetaMask ?? ? ?? ??, BTCC?? Little Fox ??? ????? ???? ??? ??? ?????. MetaMask ???? ?????? 3?? ? ??? ???? ??? MetaMask Little Fox Wallet? ??? ?? ?? ?? ???? ?? ? ?????. ??? ??? ? ??? ???? ????? ??? ? ????.

??? ???? ????? ??? ?? ??? ??? ???? ? ? ??? ?????. ?? ??? ???? ???? ??? ? ??? Baidu Netdisk? ??? ???? ??, ???? ?? ?? ? ??? ?? ???? ?? ???? ??? ?????. ??? ??? ????, ??? ????, ????? ???? ????, ??? ?? ?? ?? Baidu Cloud Disk? ??? ??? ??? ? ????. ??? ?? ???? Baidu Netdisk ?? ???? ?? ??? ???? ?? ? ???? ? ??????? Baidu Netdisk ? ?? ??? ??? ?????. Baidu ???? ???? ??? ?? ??: 1. ?? ?? Baidu Cloud ?????? ?????? ??? ? ??? ?? ?? ??? ??????.

NetEase Mailbox? ?? ????? ?? ???? ??? ???, ????? ???? ???? ?? ????? ??? ?? ????. NetEase Mailbox Master? ??? ???? ?? ??? ??? ??? ?????? ??? ??? ? ?? ????? ?? ????? ??? ??? ?? ???? ????. ??? NetEase Mailbox Master? ???? ??? ? ??? ???? ???? ? ???? ???? ??? ??? ???? ??? ?? ????! ??, ??? ?????? NetEase Mailbox Master ?? ???? ?????? ? ????. App Store ?? Baidu Mobile Assistant?? "NetEase Mailbox Master"? ??? ? ??? ?? ?????. ???? ? ??? ???? NetEase ??? ??? ?? ??????. ??? ?????? ??? ????.
