Posredovanje Googlove e-pošte za prijavo iz Vue.js v Lumen

Vue.js JavaScript

Nastavitev avtentikacije uporabnika

Integracija Googlovega preverjanja pristnosti v sprednji del Vue.js z Lumenom kot zaledjem predstavlja edinstvene izzive, zlasti pri upravljanju uporabniških podatkov, kot so e-poštni naslovi. Postopek vključuje zajemanje e-pošte med zaporedjem prijave in varen prenos na strežnik za nadaljnjo avtentikacijo in obdelavo.

Ta vodnik raziskuje pravilno metodo za pridobivanje e-poštnega naslova po uspešni prijavi v Google in pošiljanje v zaledje Lumen. Cilj je zagotoviti, da se ta kritični del podatkov obravnava natančno, da se olajša preverjanje uporabnika in poznejša dejanja v aplikaciji.

Ukaz Opis
google.accounts.oauth2.initCodeClient() Inicializira predmet odjemalca z nastavitvami OAuth 2.0, ki so potrebne za vrsto odobritve avtorizacijske kode v toku Google OAuth.
requestCode() Sproži zaporedje OAuth, ki vključuje soglasje uporabnika za skupno rabo njegovega e-poštnega naslova in podatkov o profilu.
axios.post() Izdela zahtevo HTTP POST na navedeni URL; običajno uporablja za predložitev podatkov obrazca ali nalaganje datotek v JavaScript.
Auth::login() Prijavi identificiranega uporabnika prek sistema za preverjanje pristnosti Laravel/Lumen in ustvari sejo za tega uporabnika.
User::where() Izvaja poizvedbe po zbirki podatkov z uporabo Eloquent ORM, da poišče uporabniški model, kjer določen pogoj, kot je e-pošta, izpolnjuje navedena merila.
response()->response()->json() Vrne odgovor JSON, ki se običajno uporablja v API-jih za pošiljanje podatkov nazaj odjemalcu v aplikacijah Lumen/Laravel.

Podrobna razčlenitev poteka preverjanja pristnosti z uporabo Vue.js in Lumen

Zagotovljeni skripti izvajajo varen potek preverjanja pristnosti uporabnika, ki integrira Google OAuth z Vue.js na sprednji strani in Lumen na zadnji strani. Komponenta Vue.js uporablja funkcijo za zagotovitev, da je Google SDK v celoti naložen, preden sprožite postopek OAuth. The se nato uporabi za nastavitev potrebnih parametrov za OAuth, kot so ID odjemalca, obsegi in preusmeritveni URI. Ta nastavitev je ključnega pomena, saj določa dovoljenja, ki se zahtevajo, in kam poslati uporabnika, potem ko ga Google overi.

Ko uporabnik odobri zahtevana dovoljenja, postopek OAuth ustvari odgovor, ki vključuje avtorizacijsko kodo. Ta koda se pošlje v zaledje z uporabo ukaz, ki izvede zahtevo HTTP POST do končne točke Lumen API. Na zadnji strani, metoda preveri, ali navedena e-pošta obstaja v bazi podatkov. Če se, in geslo ni potrebno, se funkcija se kliče za prijavo uporabnika in ustvarjanje JWT, ki omogoča varno komunikacijo med odjemalcem in strežnikom.

Integracija Google Auth v Vue.js in Lumen

Vue.js z Axios in Lumen API

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);
      }
    }
  }
};

Implementacija zaledja Lumen za avtentikacijo JWT

PHP z ogrodjem 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);
  }
}//

Napredne tehnike integracije za Google Auth z Vue.js in Lumen

Pri integraciji Googlovega preverjanja pristnosti v spletno aplikacijo je najpomembnejše varno in učinkovito ravnanje z uporabniškimi podatki. Poleg nastavitve osnovnega toka OAuth morajo razvijalci upoštevati varnostne izboljšave, kot je implementacija parametrov stanja za ublažitev napadov CSRF in uporaba varnih piškotkov samo HTTP za shranjevanje žetonov. Bistveno je tudi, da potrdite celovitost podatkov, prejetih iz Googlovih strežnikov, s preverjanjem podpisov žetonov, s čimer zagotovite, da podatki med prenosom niso bili spremenjeni.

Ta raven varnosti preprečuje nepooblaščen dostop in zagotavlja, da se s podatki uporabnikov, kot so e-poštni naslovi, ravna v skladu s predpisi o zasebnosti. Poleg tega lahko razvijalci s poenostavitvijo postopka preverjanja pristnosti izboljšajo uporabniško izkušnjo, skrajšajo čas prijave in poenostavijo postopek dostopa do svojih aplikacij.

  1. Kako varno shranim žetone, prejete od Googla?
  2. Uporabite varne piškotke samo HTTP in zagotovite, da vaše zaledje potrdi celovitost žetona s preverjanjem njegovega podpisa.
  3. Kaj je tok OAuth 2.0 in kako deluje?
  4. The flow je protokol, ki uporabniku omogoča, da spletnemu mestu ali aplikaciji tretje osebe omogoči dostop do svojih informacij, shranjenih pri drugem ponudniku storitev, ne da bi razkril svoje poverilnice.
  5. Kako lahko upravljam uporabniške seje v Vue.js z Googlovo prijavo?
  6. Upravljajte seje tako, da shranite prejeti žeton OAuth in ga uporabite za pošiljanje overjenih zahtev vašemu zaledju.
  7. Zakaj dobivam napako 'E-pošta ni registrirana'?
  8. Do te napake običajno pride, če e-poštno sporočilo, pridobljeno iz postopka OAuth, ne obstaja v vaši bazi podatkov. Zagotovite, da pravilno ravnate z novimi in vračajočimi se uporabniki.
  9. Katere so najboljše prakse za varnost pri implementacijah OAuth?
  10. Najboljše prakse vključujejo uporabo HTTPS za vse komunikacije, varno shranjevanje žetonov in dodajanje parametra stanja v zahteve OAuth za preprečevanje napadov CSRF.

Uspešna integracija Googlove avtentikacije v spletne aplikacije z uporabo Vue.js in Lumen izboljša varnost uporabnikov in poenostavi postopek prijave. Razvijalcem omogoča, da izkoristijo Googlov robusten varnostni okvir in tako zmanjšajo tveganje kršitev podatkov. Natančna izvedba in obravnavanje napak sta bistvenega pomena za zagotovitev brezhibne uporabniške izkušnje in za zaščito uporabniških informacij pred nepooblaščenim dostopom, zaradi česar je temeljito razumevanje vsakega koraka v procesu OAuth ključnega pomena.