Rumah > Artikel > rangka kerja php > Pembangunan Laravel: Bagaimana untuk melaksanakan log masuk sosial menggunakan Laravel Socialite?
Dalam era rangkaian sosial yang semakin berkembang hari ini, log masuk sosial telah menjadi ciri standard semakin banyak tapak web. Ia bukan sahaja memudahkan pengguna untuk log masuk dengan cepat, tetapi juga membantu laman web meningkatkan trafik pengguna dan interaksi sosial. Walaupun tidak sukar untuk melaksanakan log masuk sosial sendiri, menggunakan komponen log masuk sosial siap sedia boleh menjimatkan masa dan usaha. Dalam pembangunan PHP, Laravel Socialite ialah komponen log masuk sosial yang mudah digunakan Mari kita lihat cara menggunakannya untuk melaksanakan log masuk sosial.
1. Pasang Laravel Socialite
Mula-mula kita perlu memasang pakej Socialite dalam aplikasi Laravel, gunakan arahan berikut:
composer require laravel/socialite
Selepas pemasangan selesai , tambahkan pembekal perkhidmatan Socialite dalam fail config/app.php
:
'providers' => [ // Other service providers... LaravelSocialiteSocialiteServiceProvider::class, ]
dan kemudian tambah alias fasad Socialite dalam fail config/app.php
:
'aliases' => [ // Other aliases... 'Socialite' => LaravelSocialiteFacadesSocialite::class, ]
Dengan cara ini, kami berjaya memasang komponen Socialite.
2. Cipta aplikasi log masuk sosial
Socialite boleh menyokong banyak aplikasi log masuk sosial yang berbeza, dan kami perlu mencipta aplikasi untuk setiap aplikasi. Berikut menggunakan GitHub sebagai contoh untuk menunjukkan penciptaan aplikasi OAuth baharu pada GitHub.
030de7539521f967a0930f7e8fe6c212
<a href="{{ url('/auth/github') }}">使用GitHub登录</a>
routes/web.php
Route::get('auth/github', 'AuthLoginController@redirectToProvider'); Route::get('auth/github/callback', 'AuthLoginController@handleProviderCallback');
dan melengkapkan pengesahan log masuk di sana. Apabila pengesahan berjaya, perkhidmatan pengesahan GitHub akan mengubah hala ke URL panggil balik yang ditentukan redirectToProvider
dan menghantar maklumat pengguna yang berjaya disahkan dalam Sesi melalui URL ini. auth/github/callback
redirectToProvider
dan tambahkan pelaksanaan berikut: app/Http/Controllers/Auth/LoginController.php
namespace AppHttpControllersAuth; use IlluminateHttpRequest; use AppHttpControllersController; use Socialite; class LoginController extends Controller { // ... public function redirectToProvider() { return Socialite::driver('github')->redirect(); } // ... }
dalam Socialite
untuk mendapatkan contoh pemacu pengesahan GitHub dan menggunakan kaedah driver()
untuk hantar pengguna Redirect ke perkhidmatan pengesahan log masuk. redirect()
handleProviderCallback
dan tambah kaedah berikut: app/Http/Controllers/Auth/LoginController.php
// ... public function handleProviderCallback() { try { $user = Socialite::driver('github')->user(); } catch (Exception $e) { return redirect('/login'); } // 验证用户信息并完成登录,代码省略 // ... } // ...
dalam Socialite
untuk mendapatkan maklumat pengguna yang dikembalikan oleh perkhidmatan pengesahan GitHub. Jika terdapat sebarang ralat semasa proses pengesahan, kami akan mengubah hala pengguna ke halaman log masuk aplikasi. Jika pengesahan berjaya, maklumat dalam objek user()
boleh digunakan untuk mengesahkan pengguna dan menyelesaikan operasi log masuk. $user
Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan log masuk sosial menggunakan Laravel Socialite?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!