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を使っているので、
ビルド時にエラーになったが、
ベースとなるやっていることは、
以下の記事を参考。
Next.js でGoogle OAuthをAuth.js(NextAuth.js)で試した件
ビルドのエラーは調整済み
ビルドについてもエラーになったが、
以下の対応をやって、
問題なくビルドは完了している。
Next.jsのnext-auth使用してビルドしたらエラーになった件
実行エラー「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を確認
https://next-auth.js.org/errors#no_secret
Readmoreがあるので、
別ページも確認
https://next-auth.js.org/configuration/options#secret
こちらのページに、
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
で確認した情報を設定。
これで問題なく動くようになった。
こちらもおすすめ
初心者向けの色々な情報はあるけれど、
- 無料でお試しができるスクール
- ホームページなど簡単に作成できる
- 組織で使いたいサービス
について、
少しでも試して良いものがあると、
それを活用することで学習や業務などが効率化できるので、
おすすめのサイトなどをいくつか紹介しておきます