BlitzjsでMissing Blitz sessionMiddlewareというエラーが出たときの対処法
11101 ワード
#どのようにしてエラーとなったか
blitzjs公式サイトやこちらのサイトを見ながらblitzjsでgoogle認証機能を作成していたのですが、ブラウザにはinternal server errorと表示され、コンソールにはMissing Blitz sessionMiddlewareというエラーが表示され、ハマってしまいました
##関連するコード
//[...auth].ts
import { passportAuth } from "blitz"
import db from "db"
import { Strategy as GoogleStrategy } from "passport-google-oauth20"
export default passportAuth({
successRedirectUrl: "/",
errorRedirectUrl: "/",
strategies: [
{
strategy: new GoogleStrategy(
{
clientID: process.env.GOOGLE_CLIENT_ID as string,
clientSecret: process.env.GOOGLE_CLIENT_SECRET as string,
callbackURL:
process.env.NODE_ENV === "production"
? "デプロイ先/api/auth/google/callback"
: "http://localhost:3004/api/auth/google/callback",
scope: ["email", "profile"],
},
async function (_token, _tokenSecret, profile, done) {
const email = profile.emails && profile.emails[0]?.value
const user = await db.user.upsert({
where: { email },
create: {
heart: 1,
email,
name: profile.displayName,
},
update: { email },
})
const publicData = {
userId: user.id,
roles: [user.role],
source: "google",
}
done(null, { publicData })
}
),
},
],
})
//blitz.config.ts
import { BlitzConfig, sessionMiddleware, simpleRolesIsAuthorized } from "blitz"
const config: BlitzConfig = {
middleware: [ //ここから
sessionMiddleware({
cookiePrefix: "streamconnect",
isAuthorized: simpleRolesIsAuthorized,
}),
],
distDir: "build", //ここまで追加
}
module.exports = config
##解決策
こちらを参考にしましたどうやらblitz.config.tsにsessionMiddlewareというものを設定しなければうまく機能しないようです
##感想
エラーの内容は逐一ググり、GitHubのIssueもめんどくさがらずに見る習慣をつけるのが大切であると思いました
Author And Source
この問題について(BlitzjsでMissing Blitz sessionMiddlewareというエラーが出たときの対処法), 我々は、より多くの情報をここで見つけました https://zenn.dev/yasuda/articles/1984864a6a45e8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol