Cara menggunakan rangka kerja Hyperf untuk log masuk pihak ketiga
Cara menggunakan rangka kerja Hyperf untuk log masuk pihak ketiga
Pengenalan:
Dengan perkembangan Internet, log masuk pihak ketiga telah menjadi ciri standard bagi banyak tapak web dan aplikasi. Melalui log masuk pihak ketiga, pengguna boleh menggunakan maklumat akaun sedia ada mereka pada platform pihak ketiga untuk log masuk ke tapak web atau aplikasi lain, mengelakkan proses pendaftaran yang menyusahkan dan meningkatkan pengalaman pengguna dengan ketara. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Hyperf untuk melaksanakan fungsi log masuk pihak ketiga, dengan contoh kod khusus.
1. Persediaan
Sebelum kami mula melaksanakan log masuk pihak ketiga, kami perlu menyediakan beberapa kerja yang diperlukan:
- Daftar di tapak web atau aplikasi yang memerlukan log masuk pihak ketiga dan memohon akaun pembangun yang sepadan, seperti QQ Internet , platform terbuka WeChat, dsb. Dapatkan maklumat yang diperlukan seperti AppID yang sepadan, AppSecret.
- Pasang rangka kerja Hyperf dan buat projek baharu.
2. Pasang pakej pergantungan
Jalankan arahan berikut dalam direktori akar projek untuk memasang pakej sambungan log masuk pihak ketiga yang disediakan oleh komuniti Hyperf.
composer require hyperf/socialite
3 Tambah maklumat konfigurasi
Tambah fail konfigurasi socialite.php
dalam direktori config/autoload/
direktori akar projek Hyperf dan tambah kandungan berikut: config/autoload/
目录下添加 socialite.php
配置文件,并添加以下内容:
<?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
等字段需要替换为开发者在对应平台上申请的信息。
四、创建控制器
在Hyperf项目中创建一个控制器,例如 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(); // 在此处处理用户登录逻辑,例如创建用户、更新用户信息等 return $this->generateResponse(); } private function generateResponse(): ResponseInterface { // 生成登录成功后的响应 return $response; } }
五、使用第三方登录
在页面中添加第三方登录的入口,例如:
<a href="/login/wechat">使用微信登录</a> <a href="/login/qq">使用QQ登录</a>
当用户点击对应的链接后,会跳转到第三方平台的登录授权页面。
六、处理回调数据
当用户在第三方平台上完成登录授权后,会跳转回我们的应用程序,并调用回调方法 handleThirdPartyCallback
。在该方法中,我们可以通过 user()
方法获取到用户在第三方平台上的基本信息,例如头像、昵称等。在此处,我们可以根据第三方平台返回的信息,判断用户是否已经在我们的应用程序中注册,如果没有,则可以在此处完成用户的自动注册。
七、完善登录逻辑
在登陆成功后,我们可以根据业务需求,生成用户的登录状态并返回一个响应给用户,例如生成 JWT Token,设置 Cookie 等。
八、总结
通过使用Hyperf框架和社区提供的 hyperf/socialite
rrreee
WECHAT_CLIENT_ID
, WECHAT_CLIENT_SECRET
, WECHAT_REDIRECT
, QQ_CLIENT_ID
, QQ_CLIENT_SECRET
, dalam fail konfigurasi di atas Medan seperti QQ_REDIRECT
perlu digantikan dengan maklumat yang digunakan oleh pembangun pada platform yang sepadan. 🎜🎜4 Buat pengawal🎜Buat pengawal dalam projek Hyperf, seperti LoginController
, dan tambah kaedah berikut: 🎜rrreee🎜5. Gunakan log masuk pihak ketiga🎜Tambah log masuk pihak ketiga Halaman Masuk, contohnya: 🎜rrreee🎜Apabila pengguna mengklik pautan yang sepadan, ia akan melompat ke halaman kebenaran log masuk platform pihak ketiga. 🎜🎜6. Memproses data panggil balik🎜Apabila pengguna melengkapkan kebenaran log masuk pada platform pihak ketiga, ia akan kembali ke aplikasi kami dan memanggil kaedah panggil balik handleThirdPartyCallback
. Dalam kaedah ini, kita boleh mendapatkan maklumat asas pengguna pada platform pihak ketiga melalui kaedah user()
, seperti avatar, nama panggilan, dsb. Di sini, kami boleh menentukan sama ada pengguna telah mendaftar dalam aplikasi kami berdasarkan maklumat yang dikembalikan oleh platform pihak ketiga Jika tidak, pendaftaran automatik pengguna boleh diselesaikan di sini. 🎜🎜7. Tingkatkan logik log masuk🎜Selepas log masuk berjaya, kami boleh menjana status log masuk pengguna dan mengembalikan respons kepada pengguna mengikut keperluan perniagaan, seperti menjana Token JWT, menetapkan Cookie, dsb. 🎜🎜8. Ringkasan🎜Dengan menggunakan rangka kerja Hyperf dan pakej sambungan hyperf/socialite
yang disediakan oleh komuniti, kami boleh melaksanakan fungsi log masuk pihak ketiga dengan pantas. Dalam artikel ini, kami melaksanakan fungsi log masuk pengguna melalui WeChat dan QQ dengan memperkenalkan pakej pergantungan, menambah maklumat konfigurasi, mencipta pengawal dan langkah lain. Sudah tentu, dalam projek sebenar, kami juga boleh menambah lebih banyak kaedah log masuk pihak ketiga mengikut keperluan, seperti Weibo, GitHub, dll. Saya harap artikel ini dapat memberi anda beberapa rujukan untuk melaksanakan fungsi log masuk pihak ketiga dalam Hyperf. 🎜Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk log masuk pihak ketiga. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini menggariskan cara untuk menyumbang kepada projek Swoole, termasuk melaporkan pepijat, menyerahkan ciri, pengekodan, dan meningkatkan dokumentasi. Ia membincangkan kemahiran dan langkah yang diperlukan untuk pemula untuk mula menyumbang, dan bagaimana mencari tekanan adalah

Artikel membincangkan memperluaskan swoole dengan modul tersuai, memperincikan langkah -langkah, amalan terbaik, dan penyelesaian masalah. Fokus utama ialah meningkatkan fungsi dan integrasi.

Artikel ini membincangkan menggunakan ciri I/O Swoole yang tidak segerak dalam PHP untuk aplikasi berprestasi tinggi. Ia meliputi pemasangan, persediaan pelayan, dan strategi pengoptimuman. Kira Word: 159

Artikel membincangkan mengkonfigurasi pengasingan proses swoole, manfaatnya seperti kestabilan dan keselamatan yang lebih baik, dan kaedah penyelesaian masalah.

Model Reaktor Swoole menggunakan seni bina I/O yang didorong oleh peristiwa, yang tidak menyekat untuk menguruskan senario-senario yang tinggi, mengoptimumkan prestasi melalui pelbagai teknik. (159 aksara)

Artikel membincangkan penyelesaian masalah, penyebab, pemantauan, dan pencegahan isu sambungan dalam Swoole, kerangka PHP.

Artikel ini membincangkan alat dan amalan terbaik untuk memantau dan mengoptimumkan prestasi Swoole, dan kaedah penyelesaian masalah untuk isu -isu prestasi.

Abstrak: Artikel ini membincangkan kebocoran memori dalam aplikasi swoole melalui pengenalan, pengasingan, dan penetapan, menekankan sebab -sebab umum seperti pengurusan sumber yang tidak wajar dan coroutin yang tidak dikendalikan. Alat seperti pelacak swoole dan valgrind


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa