Schützen Sie Vue-Anwendungsseiten vor dem Zugriff nicht angemeldeter Benutzer
<p>Ich habe angefangen, Supabase als Alternative zu Firebase zu verwenden. Ich implementieren ein einfaches Authentifizierungssystem für meine Vue-Webanwendung und habe ein Problem mit Weiterleitungen.
Ich habe die Magic-Link-Lösung verwendet, um Benutzer bei https://supabase.com/docs/guides/auth/auth-magic-link anzumelden, bin mir aber nicht sicher, wie ich die Anmeldeumleitung auf localhost auch während der Entwicklung richtig einrichten soll So verhindern Sie, dass nicht angemeldete Benutzer eine Ansicht anzeigen. </p>
<p>Ich habe Pinia und Vue Router implementiert. Auf der aktuellen Homepage verwende ich diesen Code, um Benutzern die Anmeldung zu ermöglichen: </p>
<pre class="brush:js;toolbar:false;">import { supabase } from '../supabase/supabase'
Standard exportieren {
Name: 'HomeView',
Daten() {
zurückkehren {
Benutzer-E-Mail: null
}
},
erstellt() {
},
mount() {
//this.initGoogleAuth()
},
Methoden: {
initMagicLinkAuth() {
supabase.auth.signInWithOtp({
E-Mail: this.userEmail,
Optionen: {
emailRedirectTo: '/about'
}
})
}
}
}
</pre>
<p>In der Vorlage habe ich ein einfaches E-Mail-Eingabefeld: </p>
<pre class="brush:html;toolbar:false;"><input type="email" class="Email"
<div class="d-grid gap-2">
<button class="btn btn-primary" @click.prevent="initMagicLinkAuth()">Login</button>
</div>
</pre>
<p>In meinem Router habe ich folgenden Code: </p>
<pre class="brush:js;toolbar:false;">import { createRouter, createWebHistory } from 'vue-router'
HomeView aus '../views/HomeView.vue' importieren
const router = createRouter({
Verlauf: createWebHistory(import.meta.env.BASE_URL),
Routen: [
{
Weg: '/',
Name: 'Zuhause',
Komponente:HomeView
},
{
Pfad: '/about',
Name: 'ungefähr',
Komponente: () => import('../views/AboutView.vue')
}
]
})
Standardrouter exportieren
</pre>
<p>Wie richtet man den Vue-Router richtig ein, um nicht angemeldete Benutzer an der Navigation zu hindern, und wie richtet man Supabase richtig für die Umleitung ein? </p>