検証が成功すると、NextJS はログイン ページからダッシュボード ページにリダイレクトします
P粉021854777
P粉021854777 2023-08-13 10:56:17
0
1
672
<p>この例では、誰かが認証されていない場合に、nextjs をログイン ページなどの指定したページにリダイレクトさせることができます。ただし、ユーザーが認証されており、そのページがログイン ページのような場合に、ユーザーをダッシュ​​ボードまたは別のページにリダイレクトするには、これをどのように変更すればよいでしょうか?これを実現できる構成はありますか? <code>matcher</code> のようなものは、プライベート URL を適切に維持します。しかし、ログイン中にユーザーにアクセスさせたくない特定のパブリック URL について、この問題を修正するにはどうすればよいでしょうか?これは可能でしょうか? </p> <pre class="brush:php;toolbar:false;">import { NextRequest, NextResponse } from 'next/server' 非同期関数ミドルウェアのエクスポート(req: NextRequest、res: NextResponse) { const token = req.headers.get('token') // TODO: リクエストヘッダーからトークンを取得します const userIsAuthenticated = false // TODO: ユーザーが認証されているかどうかを確認します console.log('ミドルウェア.ts', 'トークン', トークン); if (!userIsAuthenticated) { constsigninUrl = 新しい URL('/login', req.url) NextResponse.redirect(signinUrl) を返す } NextResponse.next() を返す } // ここで、このミドルウェア関数が実行されるすべてのパスを指定できます // 単一の文字列値またはマッチャーの配列をサポートします エクスポート const 構成 = { マッチャー: ['/api/auth/:path*', '/'], }</pre>
P粉021854777
P粉021854777

全員に返信(1)
P粉986937457

認証に Next-Auth を使用していると仮定します:

withAuth を使用してミドルウェアをラップし、Next-Auth によって提供されるトークン変数を使用してセッションを認証し、セッションの有効性に基づいて目的の route にリダイレクトします。

これは役に立つかもしれない TS コードです:

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート