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を使っているので、

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

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

以下の記事を参考。

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

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

以下の対応をやって、

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

実行エラー「Please define a secret in production.」

実行したら、

エラーが発生した。

エラー内容

https://next-auth.js.org/errors#no_secret 
Please define a `secret` in production. 
MissingSecret [MissingSecretError]: 
Please define a `secret` in production.
 :
code: 'NO_SECRET'

関連情報としては、

上記に記載のURLを確認

Readmoreがあるので、

別ページも確認

こちらのページに、

secret
Default value: 
string (SHA hash of the "options" object) in development, 
no default in production.
Required: Yes, in production!

という形で、

productionモードだと必須らしい。

調整ファイル

.env

調整内容

NEXTAUTH_SECRET=【キー情報】

上記の調整では、

元々、自分が参考にしていたコードだと、

NEXTAUTH_SECRET= # Linux: `openssl rand -hex 32` or go to https://generate-secret.now.sh/32

ということなので、

キー情報には、

https://generate-secret.now.sh/32

で確認した情報を設定。

これで問題なく動くようになった。

ピックアップ

こちらもおすすめ

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

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

について、

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

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

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

おすすめ書籍

広告

おすすめ記事