nuxt3のserver/apiで認証済みか否かをチェックする

person holding magnifying glass NuxtJS
Photo by Maurício Mascaro on Pexels.com
この記事は約2分で読めます。

はじめに

前回Nuxt3の@sidebase/nuxt-authで認証処理を作成しました。

Nuxt3でNuxt-Authモジュールを使って認証処理をつくる
以前、以下の投稿で簡易な認証機能を試してみました。しかし、以下は認証フローのイメージを掴むための簡易なサンプルでしたので機能は不十分でした。 今回は、Nuxt-Authというモジュールを使って認証機能を組み込むための方法について見ていきたい...

今回はserver/apiやmiddlewareで認証済みかチェックする処理を作ります。

パターン

以下3つのパターンで書いてみます。

server/apiでチェック

eventHandlerの中で都度セッションの有無をチェックします。以下のページのようなイメージです。

Session Access And Route Protection · sidebase
Supercharging the Nuxt3 developer experience with high quality modules and tools!

apiごとにセッション有無をチェックする処理を記述する必要があります。そのため一括でチェックしたい場合は次のmiddlewareで処理するという方法があります。

server/middlewareでチェック

middlewareに書くと全てのリクエストで以下の認証チェックが効きます。リクエストパスで認証有無を切り分けたい場合はpathをチェックする形になるでしょうか。

独自のeventHandlerでチェック

eventHandlerが呼ばれる前にセッションをチェックします。defineEventHandlerの代わりにdefineAuthEventHandlerを使います。apiごとに使い分けられAPIパスも意識しなくて良いのでよさげな気がします。

最終的に3番目の形に落ち着きました。

参考リンク

コメント

タイトルとURLをコピーしました