Google Giriş E-postasını Vue.js'den Lumen'e aktarma

Vue.js JavaScript

Kullanıcı Kimlik Doğrulamasını Ayarlama

Google kimlik doğrulamasını arka uç olarak Lumen ile Vue.js ön ucuna entegre etmek, özellikle e-posta adresleri gibi kullanıcı verilerini yönetirken benzersiz zorluklar doğurur. Süreç, oturum açma sırasında e-postanın yakalanmasını ve daha fazla kimlik doğrulama ve işlem için güvenli bir şekilde sunucuya iletilmesini içerir.

Bu kılavuz, başarılı bir Google oturum açma işlemi sonrasında e-posta adresini ayıklamak ve Lumen arka ucuna göndermek için doğru yöntemi araştırmaktadır. Amaç, kullanıcı doğrulamasını ve uygulama içindeki sonraki eylemleri kolaylaştırmak için bu kritik veri parçasının doğru bir şekilde işlenmesini sağlamaktır.

Emretmek Tanım
google.accounts.oauth2.initCodeClient() Bir Google OAuth akışındaki yetkilendirme kodu verme türü için gerekli OAuth 2,0 ayarlarına sahip bir istemci nesnesini başlatır.
requestCode() Kullanıcının e-posta adresini ve profil bilgilerini paylaşma iznini içeren OAuth dizisini tetikler.
axios.post() Belirtilen URL'ye bir HTTP POST isteğinde bulunur; JavaScript'te form verilerini veya dosya yüklemelerini göndermek için yaygın olarak kullanılır.
Auth::login() Tanımlanan kullanıcıda Laravel/Lumen kimlik doğrulama sistemi aracılığıyla oturum açar ve bu kullanıcı için bir oturum oluşturur.
User::where() E-posta gibi belirli bir koşulun sağlanan kriterleri karşıladığı bir kullanıcı modeli bulmak için Eloquent ORM'yi kullanarak veritabanını sorgular.
response()->response()->json() Lumen/Laravel uygulamalarında verileri istemciye geri göndermek için API'lerde yaygın olarak kullanılan bir JSON yanıtı döndürür.

Vue.js ve Lumen Kullanılarak Kimlik Doğrulama Akışının Ayrıntılı Dağılımı

Sağlanan komut dosyaları, Google OAuth'u ön uçta Vue.js ve arka uçta Lumen ile entegre eden güvenli bir kullanıcı kimlik doğrulama akışı uygular. Vue.js bileşeni şunları kullanır: OAuth işlemini başlatmadan önce Google SDK'nın tam olarak yüklendiğinden emin olma işlevi. işlevi daha sonra OAuth için istemci kimliği, kapsamlar ve yönlendirme URI'si gibi gerekli parametreleri ayarlamak için kullanılır. Bu kurulum, istenen izinleri ve Google'ın kimliğini doğruladıktan sonra kullanıcının nereye gönderileceğini tanımladığı için çok önemlidir.

Kullanıcı istenen izinleri yetkilendirdikten sonra OAuth işlemi, yetkilendirme kodunu içeren bir yanıt oluşturur. Bu kod kullanılarak arka uca gönderilir. Lumen API uç noktasına bir HTTP POST isteği gerçekleştiren komut. Arka uçta, yöntem, sağlanan e-postanın veritabanında mevcut olup olmadığını kontrol eder. Eğer öyleyse ve şifre gerekmiyorsa, Kullanıcının oturum açması ve bir JWT oluşturması için işlev çağrılır, böylece istemci ile sunucu arasında güvenli iletişim sağlanır.

Google Auth'u Vue.js ve Lumen'e entegre etme

Axios ve Lumen API'li Vue.js

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

JWT Kimlik Doğrulaması için Lümen Arka Uç Uygulaması

Lumen Çerçeveli PHP

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

Vue.js ve Lumen ile Google Auth için Gelişmiş Entegrasyon Teknikleri

Google kimlik doğrulamasını bir web uygulamasına entegre ederken kullanıcı verilerinin güvenli ve verimli bir şekilde işlenmesi çok önemlidir. Geliştiricilerin, temel OAuth akışını ayarlamanın yanı sıra, CSRF saldırılarını azaltmak için durum parametrelerini uygulama ve belirteçleri depolamak için güvenli, yalnızca HTTP'ye yönelik çerezler kullanma gibi güvenlik geliştirmelerini de dikkate alması gerekir. Ayrıca, Google'ın sunucularından alınan verilerin bütünlüğünü, jeton imzalarını doğrulayarak doğrulamak ve verilerin aktarım sırasında tahrif edilmediğinden emin olmak da önemlidir.

Bu güvenlik düzeyi yetkisiz erişimi önler ve e-posta adresleri gibi kullanıcı verilerinin gizlilik düzenlemelerine uygun şekilde işlenmesini sağlar. Ayrıca geliştiriciler, kimlik doğrulama sürecini kolaylaştırarak kullanıcı deneyimini iyileştirebilir, oturum açma sürelerini azaltabilir ve uygulamalarına erişim sürecini basitleştirebilir.

  1. Google'dan alınan jetonları güvenli bir şekilde nasıl saklarım?
  2. Güvenli, yalnızca HTTP çerezleri kullanın ve arka ucunuzun imzayı doğrulayarak belirtecin bütünlüğünü doğruladığından emin olun.
  3. OAuth 2.0 akışı nedir ve nasıl çalışır?
  4. akış, bir kullanıcının üçüncü taraf bir web sitesine veya uygulamaya, başka bir hizmet sağlayıcıda saklanan bilgilerine, kimlik bilgilerini açıklamadan erişim izni vermesine olanak tanıyan bir protokoldür.
  5. Vue.js'deki kullanıcı oturumlarını Google Girişi ile nasıl yönetebilirim?
  6. Alınan OAuth jetonunu depolayıp arka ucunuza kimliği doğrulanmış isteklerde bulunmak için kullanarak oturumları yönetin.
  7. Neden 'E-posta kayıtlı değil' hatası alıyorum?
  8. Bu hata genellikle OAuth işleminden alınan e-postanın veritabanınızda mevcut olmaması durumunda ortaya çıkar. Yeni ve geri gelen kullanıcıları doğru bir şekilde ele aldığınızdan emin olun.
  9. OAuth uygulamalarında güvenlik için en iyi uygulamalar nelerdir?
  10. En iyi uygulamalar arasında tüm iletişimler için HTTPS kullanılması, belirteçlerin güvenli bir şekilde saklanması ve CSRF saldırılarını önlemek için OAuth isteklerine bir durum parametresi eklenmesi yer alır.

Vue.js ve Lumen kullanılarak Google kimlik doğrulamasının web uygulamalarına başarılı bir şekilde entegre edilmesi, kullanıcı güvenliğini artırır ve oturum açma sürecini kolaylaştırır. Geliştiricilerin Google'ın güçlü güvenlik çerçevesinden yararlanmasına olanak tanıyarak veri ihlali riskini azaltır. Sorunsuz bir kullanıcı deneyimi sağlamak ve kullanıcı bilgilerini yetkisiz erişime karşı korumak için doğru uygulama ve hata yönetimi çok önemlidir; bu da OAuth sürecindeki her adımın tam olarak anlaşılmasını kritik hale getirir.