ログインしていないユーザーによるアクセスから Vue アプリケーション ページを保護する
P粉598140294
2023-09-01 11:46:55
<p>私は firebase の代替として supabase を使い始めました。 vue Web アプリに単純な認証システムを実装していますが、リダイレクトに問題があります。
マジック リンク ソリューションを使用してユーザーを https://supabase.com/docs/guides/auth/auth-magic-link にログインさせましたが、開発中にローカルホストでログイン リダイレクトを適切に設定する方法もわかりませんログインしていないユーザーがビューを表示できないようにする方法。 </p>
<p>pinia と vue ルーターを実装しました。現在のホームページでは、これはユーザーがログインできるようにするために使用するコードです: </p>
<pre class="brush:js;toolbar:false;">import { supabase } from '../supabase/supabase'
デフォルトのエクスポート {
名前: 'ホームビュー'、
データ() {
戻る {
userEmail: null
}
}、
作成した() {
}、
マウントされた() {
//this.initGoogleAuth()
}、
メソッド: {
initMagicLinkAuth() {
supabase.auth.signInWithOtp({
電子メール: this.userEmail、
オプション: {
emailRedirectTo: '/about'
}
})
}
}
}
</pre>
<p>テンプレートには簡単な電子メール入力フィールドがあります: </p>
<pre class="brush:html;toolbar:false;"><input type="email" class="form-control" placeholder="Email" v-model="userEmail">
<div class="d-グリッドギャップ-2">
<button class="btn btn-primary" @click.prevent="initMagicLinkAuth()">ログイン</button>
</div>
</pre>
<p>ルーターには次のコードがあります: </p>
<pre class="brush:js;toolbar:false;">import { createRouter, createWebHistory } from 'vue-router'
「../views/HomeView.vue」から HomeView をインポートします
const router = createRouter({
履歴: createWebHistory(import.meta.env.BASE_URL),
ルート: [
{
パス: '/'、
名前: 「ホーム」、
コンポーネント:ホームビュー
}、
{
パス: '/about'、
名前: 「約」、
コンポーネント: () => import('../views/AboutView.vue')
}
】
})
デフォルトルーターをエクスポートする
</pre>
<p>ログインしていないユーザーがナビゲートできないように vue ルーターを正しく設定する方法、およびリダイレクト用に supabase を正しく設定する方法は? </p>
Taken from: https://blog.logrocket.com/ultimate-guide-authentication-vue-js-supabase/