$lang['tuto'] = "tutorial"; ?>$lang['tuto'] = "tutorial"; ?>$lang['tuto'] = "tutorial"; ?> Menghantar E-mel Log Masuk Google dari Vue.js ke Lumen

Menghantar E-mel Log Masuk Google dari Vue.js ke Lumen

Vue.js JavaScript

Menyediakan Pengesahan Pengguna

Mengintegrasikan pengesahan Google ke bahagian hadapan Vue.js dengan Lumen kerana bahagian belakang menimbulkan cabaran unik, terutamanya apabila mengurus data pengguna seperti alamat e-mel. Proses ini melibatkan menangkap e-mel semasa urutan log masuk dan menghantarnya dengan selamat ke pelayan untuk pengesahan dan pemprosesan selanjutnya.

Panduan ini meneroka kaedah yang betul untuk mengekstrak alamat e-mel apabila log masuk Google berjaya dan menghantarnya ke bahagian belakang Lumen. Matlamatnya adalah untuk memastikan bahawa sekeping data kritikal ini dikendalikan dengan tepat untuk memudahkan pengesahan pengguna dan tindakan seterusnya dalam aplikasi.

Perintah Penerangan
google.accounts.oauth2.initCodeClient() Memulakan objek klien dengan tetapan OAuth 2.0 yang diperlukan untuk jenis pemberian kod kebenaran dalam aliran OAuth Google.
requestCode() Mencetuskan urutan OAuth yang merangkumi persetujuan pengguna untuk berkongsi alamat e-mel dan maklumat profil mereka.
axios.post() Membuat permintaan HTTP POST ke URL yang ditentukan; biasa digunakan untuk menyerahkan data borang atau muat naik fail dalam JavaScript.
Auth::login() Log masuk pengguna yang dikenal pasti melalui sistem pengesahan Laravel/Lumen dan mencipta sesi untuk pengguna tersebut.
User::where() Menanyakan pangkalan data menggunakan Eloquent ORM untuk mencari model pengguna yang syarat tertentu, seperti e-mel, memenuhi kriteria yang disediakan.
response()->response()->json() Mengembalikan respons JSON, yang biasa digunakan dalam API untuk menghantar data kembali kepada klien dalam aplikasi Lumen/Laravel.

Pecahan Terperinci Aliran Pengesahan Menggunakan Vue.js dan Lumen

Skrip yang disediakan melaksanakan aliran pengesahan pengguna selamat yang menyepadukan Google OAuth dengan Vue.js di bahagian hadapan dan Lumen di bahagian belakang. Komponen Vue.js menggunakan berfungsi untuk memastikan SDK Google dimuatkan sepenuhnya sebelum memulakan proses OAuth. The fungsi kemudiannya digunakan untuk menyediakan parameter yang diperlukan untuk OAuth, seperti ID klien, skop dan URI ubah hala. Persediaan ini penting kerana ia mentakrifkan kebenaran yang diminta dan tempat untuk menghantar pengguna selepas Google mengesahkannya.

Setelah pengguna membenarkan kebenaran yang diminta, proses OAuth menjana respons, yang termasuk kod kebenaran. Kod ini dihantar ke bahagian belakang menggunakan arahan, yang melaksanakan permintaan HTTP POST ke titik akhir API Lumen. Di bahagian belakang, bahagian kaedah menyemak sama ada e-mel yang disediakan wujud dalam pangkalan data. Jika ia berlaku, dan tiada kata laluan diperlukan, the fungsi dipanggil untuk log masuk pengguna dan menjana JWT, membolehkan komunikasi selamat antara klien dan pelayan.

Mengintegrasikan Google Auth dalam Vue.js dan Lumen

Vue.js dengan Axios dan API Lumen

import { googleSdkLoaded } from "vue3-google-login";
import axios from "axios";
export default {
  name: "App",
  data() {
    return { userDetails: null };
  },
  methods: {
    login() {
      googleSdkLoaded(google => {
        google.accounts.oauth2.initCodeClient({
          client_id: "YOUR_CLIENT_ID",
          scope: "email profile openid",
          redirect_uri: "http://localhost:8000/api/Google_login",
          callback: response => {
            if (response.code) {
              this.sendCodeToBackend(response.code, response.email);
            }
          }
        }).requestCode();
      });
    },
    async sendCodeToBackend(code, email) {
      try {
        const headers = { Authorization: code, Email: email };
        const response = await axios.post("http://localhost:8000/api/Google_login", null, { headers });
        this.userDetails = response.data;
      } catch (error) {
        console.error("Failed to send authorization code:", error);
      }
    }
  }
};

Pelaksanaan Lumen Backend untuk Pengesahan JWT

PHP dengan Rangka Kerja Lumen

//php
use Illuminate\Http\Request;
use App\Models\User;
use Illuminate\Support\Facades\Auth;
public function Google_login(Request $request) {
  try {
    $user = User::where('email', $request->email)->first();
    if ($user) {
      $token = Auth::login($user);
      return response()->json(['token' => $token]);
    } else {
      return response()->json(['message' => 'Email is not registered'], 401);
    }
  } catch (\Throwable $th) {
    return response()->json(['status' => false, 'message' => $th->getMessage()], 500);
  }
}//

Teknik Penyepaduan Lanjutan untuk Google Auth dengan Vue.js dan Lumen

Apabila menyepadukan pengesahan Google ke dalam aplikasi web, pengendalian data pengguna dengan selamat dan cekap adalah yang terpenting. Selain menyediakan aliran OAuth asas, pembangun mesti mempertimbangkan peningkatan keselamatan seperti melaksanakan parameter keadaan untuk mengurangkan serangan CSRF dan menggunakan kuki HTTP sahaja yang selamat untuk menyimpan token. Ia juga penting untuk mengesahkan integriti data yang diterima daripada pelayan Google dengan mengesahkan tandatangan token, memastikan data tersebut tidak diganggu semasa transit.

Tahap keselamatan ini menghalang capaian yang tidak dibenarkan dan memastikan data pengguna, seperti alamat e-mel, dikendalikan dengan mematuhi peraturan privasi. Selain itu, dengan memperkemas proses pengesahan, pembangun boleh meningkatkan pengalaman pengguna, mengurangkan masa log masuk dan memudahkan proses mengakses aplikasi mereka.

  1. Bagaimanakah saya boleh menyimpan token yang diterima daripada Google dengan selamat?
  2. Gunakan kuki HTTP sahaja yang selamat dan pastikan bahagian belakang anda mengesahkan integriti token dengan mengesahkan tandatangannya.
  3. Apakah aliran OAuth 2.0 dan bagaimana ia berfungsi?
  4. The flow ialah protokol yang membenarkan pengguna memberikan tapak web atau aplikasi pihak ketiga akses kepada maklumat mereka yang disimpan dengan pembekal perkhidmatan lain, tanpa mendedahkan kelayakan mereka.
  5. Bagaimanakah saya boleh mengendalikan sesi pengguna dalam Vue.js dengan Log Masuk Google?
  6. Urus sesi dengan menyimpan token OAuth yang diterima dan menggunakannya untuk membuat permintaan yang disahkan ke bahagian belakang anda.
  7. Mengapa saya mendapat ralat 'E-mel tidak didaftarkan'?
  8. Ralat ini biasanya berlaku jika e-mel yang diambil daripada proses OAuth tidak wujud dalam pangkalan data anda. Pastikan anda mengendalikan pengguna baharu dan pengguna yang kembali dengan betul.
  9. Apakah amalan terbaik untuk keselamatan dalam pelaksanaan OAuth?
  10. Amalan terbaik termasuk menggunakan HTTPS untuk semua komunikasi, menyimpan token dengan selamat dan menambah parameter keadaan pada permintaan OAuth untuk menghalang serangan CSRF.

Berjaya menyepadukan pengesahan Google dalam aplikasi web menggunakan Vue.js dan Lumen meningkatkan keselamatan pengguna dan menyelaraskan proses log masuk. Ia membolehkan pembangun memanfaatkan rangka kerja keselamatan Google yang teguh, mengurangkan risiko pelanggaran data. Pelaksanaan yang tepat dan pengendalian ralat adalah penting untuk memastikan pengalaman pengguna yang lancar dan untuk melindungi maklumat pengguna daripada akses yang tidak dibenarkan, menjadikan pemahaman menyeluruh tentang setiap langkah dalam proses OAuth menjadi kritikal.