Rumah rangka kerja php Laravel Pembangunan Laravel: Bagaimana untuk melaksanakan log masuk pihak ketiga menggunakan Laravel Socialite dan Google?

Pembangunan Laravel: Bagaimana untuk melaksanakan log masuk pihak ketiga menggunakan Laravel Socialite dan Google?

Jun 14, 2023 am 09:30 AM
laravel google socialite

Pembangunan Laravel: Bagaimana untuk menggunakan Laravel Socialite dan Google untuk melaksanakan log masuk pihak ketiga?

Dalam aplikasi web moden, log masuk dan pengesahan pengguna adalah penting. Kaedah pengesahan tradisional berdasarkan nama pengguna dan kata laluan tidak lagi dapat memenuhi keperluan keselamatan dan kemudahannya. Log masuk pihak ketiga menyelesaikan masalah ini dengan membenarkan pengguna log masuk ke aplikasi anda menggunakan akaun yang telah mereka buat pada platform lain.

Dalam artikel ini, kami akan memperkenalkan cara melaksanakan log masuk pihak ketiga menggunakan Laravel Socialite dan Google.

Apakah itu Laravel Socialite?

Laravel Socialite ialah perpustakaan pembungkusan untuk proses pengesahan OAuth yang digunakan secara meluas dalam komuniti Laravel. Ia membolehkan kami berhubung dengan mudah dengan pelbagai perkhidmatan pihak ketiga seperti Facebook, Twitter, Google, dll.

Tetapan Platform Pembangunan Google

Mula-mula, kami perlu mencipta ID klien OAuth dalam Platform Pembangunan Google. Buka https://console.developers.google.com/ dan buat projek baharu. Dalam menu lungsur turun "Pilih Projek" di penjuru kiri sebelah atas, klik "Projek Baharu."

Isi nama projek dan maklumat tetapan projek lain. Selepas membuat projek, anda akan dialihkan ke halaman gambaran keseluruhan projek. Daripada menu atas, pilih API & Perkhidmatan > Bukti kelayakan.

Klik butang "Buat Kredensial" dan pilih "ID Klien OAuth".

Dalam menu lungsur turun "Jenis Aplikasi", pilih "Aplikasi Web". Untuk mengintegrasikan Laravel Socialite dengan Google, kami perlu mengisi medan "Sumber JavaScript yang Dibenarkan" dan "Ubah hala URI".

Dalam medan "Sumber JavaScript Dibenarkan", masukkan nama hos aplikasi anda, kami boleh menggunakan URL "http://localhost" secara setempat. Dalam medan "Ubah hala", masukkan URL panggil balik untuk mengubah hala semula ke aplikasi anda selepas log masuk daripada Google. Dalam contoh ini, kami akan menggunakan URL "http://localhost:8000/auth/google/callback".

Setelah dibuat, anda akan diberikan ID Pelanggan dan Rahsia Pelanggan. Simpan bukti kelayakan ini, kami akan menggunakannya kemudian dalam Laravel.

Pemasangan dan konfigurasi Laravel Socialite

Laravel Socialite ialah pakej Komposer yang boleh digunakan melalui pemasangan baris arahan. Kami menggunakan arahan berikut untuk memasangnya:

composer require laravel/socialite
Salin selepas log masuk

Selepas pemasangan selesai, tambah pembekal perkhidmatan Socialite dalam fail konfigurasi Laravel:

'providers' => [
    // ...
    LaravelSocialiteSocialiteServiceProvider::class,
],
Salin selepas log masuk

Anda juga perlu menambah maklumat konfigurasi berikut ke fail konfigurasi Laravel:

'client_id' => env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => env('GOOGLE_REDIRECT'),
Salin selepas log masuk

Di sini kami menggunakan fail .env untuk menyimpan maklumat konfigurasi yang diperlukan:

GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT=http://localhost:8000/auth/google/callback
Salin selepas log masuk

Integrasi Sosialit Laravel

Di sini kita perlu mencipta laluan pengendali yang akan mengendalikan aliran OAuth dengan Google.

Route::get('/auth/google', function () {
    return Socialite::driver('google')->redirect();
});

Route::get('/auth/google/callback', function () {
    $user = Socialite::driver('google')->user();
    dd($user);
});
Salin selepas log masuk

Pengendali laluan pertama akan mengubah hala pengguna ke aliran log masuk Google.

Apabila berjaya, pengguna akan diubah hala ke pengendali laluan kedua. Pada ketika ini, kita boleh menggunakan kaedah user() untuk mendapatkan maklumat pengguna yang log masuk. Isikan kod pengguna yang dikembalikan dan cetak maklumat pengguna yang anda perolehi:

$user = Socialite::driver('google')->user();
dd($user);
Salin selepas log masuk

Anda akan melihat data lain tentang pengguna, seperti nama pengguna, alamat e-mel, avatar, token, dsb. Berdasarkan maklumat ini, kami boleh melaksanakan log masuk pihak ketiga.

Di sini kami akan menggunakan maklumat pengguna yang diperoleh di atas untuk membuat dan mengesahkan pengguna aplikasi.

Route::get('/auth/google/callback', function () {
    $user = Socialite::driver('google')->user();
    // save application user
    $authUser = User::where('email', $user->email)->first();
    if ($authUser) {
        Auth::login($authUser, true);
        return redirect('/home');
    }
    // create application user
    $newUser = new User;
    $newUser->name = $user->name;
    $newUser->email = $user->email;
    $newUser->password = bcrypt(str_random(16));
    $newUser->save();
    Auth::login($newUser, true);
    return redirect('/home');
});
Salin selepas log masuk

Di sini kita mulakan dengan mencari pengguna apl sedia ada menggunakan alamat e-mel yang dikembalikan oleh Google. Jika ditemui, kemudian log masuk menggunakan API pengesahan Laravel. Jika tidak dijumpai, kemudian buat pengguna baharu dan log masuk menggunakan API Pengesahan Laravel.

Kesimpulan

Artikel ini memperkenalkan cara menggunakan Laravel Socialite dan Google untuk melaksanakan log masuk pihak ketiga.

Melalui persediaan Google Dev Platform, kami menjana bukti kelayakan OAuth yang diperlukan. Kemudian, kami menggunakan Laravel Socialite untuk menghapuskan langkah dan kod yang membosankan dalam proses OAuth. Akhir sekali, kami mengesahkan dan mencipta pengguna baharu menggunakan alamat e-mel sedia ada pengguna.

Kami berharap artikel ini memberikan panduan tentang cara melaksanakan log masuk pihak ketiga menggunakan Laravel Socialite dan Google, serta meliputi gambaran keseluruhan proses OAuth.

Atas ialah kandungan terperinci Pembangunan Laravel: Bagaimana untuk melaksanakan log masuk pihak ketiga menggunakan Laravel Socialite dan Google?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Bagaimana untuk mendapatkan kod pengembalian semasa menghantar e -mel gagal di Laravel? Apr 01, 2025 pm 02:45 PM

Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Tugas Jadual Laravel tidak dilaksanakan: Apa yang harus saya lakukan jika tugas itu tidak berjalan selepas Jadual: Jalankan Perintah? Mar 31, 2025 pm 11:24 PM

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Di Laravel, bagaimana menangani situasi di mana kod pengesahan gagal dihantar melalui e -mel? Mar 31, 2025 pm 11:48 PM

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Siapa yang sebenarnya memiliki Google? Siapa yang sebenarnya memiliki Google? Apr 02, 2025 pm 04:01 PM

Google dimiliki oleh Alphabet Inc., yang dikawal oleh Larry Page dan Sergey membawa: 1) Pengasas memastikan kawalan syarikat dengan memegang saham Kelas B (10 undi sesaham); 2) Saham Kelas A dan Kelas C abjad diedarkan di pasaran terbuka dan pelan pemilikan saham pekerja, tetapi tidak menjejaskan kawalan pengasas.

Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Bagaimana untuk melaksanakan fungsi jadual tersuai untuk mengklik untuk menambah data dalam admin dcat? Apr 01, 2025 am 07:09 AM

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Perkongsian Sambungan Laravel Redis: Mengapa kaedah pilih mempengaruhi sambungan lain? Apr 01, 2025 am 07:45 AM

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...

Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Laravel Multi-Tenant Extension Stancl/Tenancy: Bagaimana Menyesuaikan Alamat Hos Sambungan Pangkalan Data Penyewa? Apr 01, 2025 am 09:09 AM

Sambungan pangkalan data penyewa tersuai dalam pakej lanjutan multi-penyewa Larave Stancl/penyewaan ketika membina aplikasi multi-penyewa menggunakan pakej lanjutan multi-penyewa Larave Stancl/penyewaan, ...

Laravel fasih orm dalam carian model separa Bangla) Laravel fasih orm dalam carian model separa Bangla) Apr 08, 2025 pm 02:06 PM

Pengambilan Model Laraveleloquent: Mudah mendapatkan data pangkalan data Eloquentorm menyediakan cara ringkas dan mudah difahami untuk mengendalikan pangkalan data. Artikel ini akan memperkenalkan pelbagai teknik carian model fasih secara terperinci untuk membantu anda mendapatkan data dari pangkalan data dengan cekap. 1. Dapatkan semua rekod. Gunakan kaedah semua () untuk mendapatkan semua rekod dalam jadual pangkalan data: USEAPP \ MODELS \ POST; $ POSTS = POST :: SEMUA (); Ini akan mengembalikan koleksi. Anda boleh mengakses data menggunakan gelung foreach atau kaedah pengumpulan lain: foreach ($ postsas $ post) {echo $ post->

See all articles