ローカルのコンテナ上で、Next.jsのnext-auth使用してビルド後に実行したらエラーになった件

Nextjsで実装していたときに、

認証周りを構築しようとした時に、

何かライブラリなどを用いて、

GoogleのOAuthでの認証を試そうと考えました。

現時点で調べていると、

  • 「Auth.js(NextAuth.js)」

というライブラリが良さそうなので、

こちらを試してみることにしました。

今回は、

ライブラリ「Auth.js(NextAuth.js)」を用いて、

Google OAuthの認証を試していたので、

その時にビルドまでうまくいったのだが、

実行するとエラーになった時のメモを

備忘録としてこの記事に残します。

公式サイトの情報

公式サイト

まずは、公式サイトでNextAuth.jsのことを確認

自分が確認した時点(2023/04/25)で、

NextAuth.js is becoming Auth.js! 🎉 
Read the announcement. Note, 
this site is under active development.

とアナウンスされているので、

それぞれのリンクをメモしておきます。

nuxt-authでGoogle認証を試した

今回のビルドエラーになったのは、

Next.jsでGoogle認証を試していたのだが、

開発モードではうまく挙動していた。

TypeScriptを使っているので、

ビルド時にエラーになったが、

ベースとなるやっていることは、

以下の記事を参考。

ビルドのエラーは調整済み

ビルドについてもエラーになったが、

以下の対応をやって、

問題なくビルドは完了している。

実行エラー

実行したら、

エラーが発生した。

エラー内容

Error: Error serializing `.csrfToken` returned from `getServerSideProps` in “/auth/signin”.
Reason: `undefined` cannot be serialized as JSON. Please use `null` or omit this value

原因

今回、ローカルで各種設定をした上で、

ブラウザで、

http://localhost:8032/api/auth/csrf
http://localhost:8032/api/auth/providers

などを試したら、

うまく挙動していた。

ここまで確認したら、

実行しているローカル上で、

next-authでの動きは問題ないかと。

GCP自体の設定も問題ないので、

考えられることとしては、

サーバーサイドのみでの挙動が、

うまく処理されていないということ。

なので、その辺りを色々と試した結果、

9000/tcp, 0.0.0.0:8032->8092/tcp

という感じで、

元々は、ポート番号を、

ローカルのホストの番号とコンテナのポートの番号が違う

ということなので、

ローカルのホストの番号とコンテナのポートの番号を合わせる

という対応をすると、

うまく挙動できました。

ピックアップ

こちらもおすすめ

初心者向けの色々な情報はあるけれど、

  • 無料でお試しができるスクール
  • ホームページなど簡単に作成できる
  • 組織で使いたいサービス

について、

少しでも試して良いものがあると、

それを活用することで学習や業務などが効率化できるので、

おすすめのサイトなどをいくつか紹介しておきます

おすすめ書籍

広告

おすすめ記事