chore: debug mfa login

This commit is contained in:
Michael Zetterberg
2024-10-16 18:46:30 +02:00
parent 74c2a9d1e1
commit 670778864e
2 changed files with 19 additions and 5 deletions

View File

@@ -37,13 +37,17 @@ import type { MiddlewareMatcher } from "@/types/middleware"
* https://authjs.dev/reference/nextjs * https://authjs.dev/reference/nextjs
*/ */
export const middleware = auth(async (request) => { export const middleware = auth(async (request) => {
const { nextUrl } = request console.log("[mwauth] start")
const lang = findLang(nextUrl.pathname)! console.log("[mwauth] request.nextUrl.origin", request.nextUrl.origin)
console.log("[mwauth] request.nextUrl", request.nextUrl)
console.log("[mwauth] request", request)
const lang = findLang(request.nextUrl.pathname)!
const isLoggedIn = !!request.auth const isLoggedIn = !!request.auth
const hasError = request.auth?.error const hasError = request.auth?.error
const nextUrlPublic = getPublicNextURL(request) const nextUrlPublic = getPublicNextURL(request)
console.log("[mfa] nextUrlPublic", nextUrlPublic)
/** /**
* Function to validate MFA from token data * Function to validate MFA from token data
@@ -55,15 +59,15 @@ export const middleware = auth(async (request) => {
: false : false
return !(request.auth?.token.mfa_scope && isMFATokenValid) return !(request.auth?.token.mfa_scope && isMFATokenValid)
} }
const isMFAPath = mfaRequired.includes(nextUrl.pathname) const isMFAPath = mfaRequired.includes(request.nextUrl.pathname)
if (isLoggedIn && isMFAPath && isMFAInvalid()) { if (isLoggedIn && isMFAPath && isMFAInvalid()) {
console.log("[mfa] required") console.log("[mfa] required")
const headers = new Headers(request.headers) const headers = new Headers(request.headers)
headers.set("x-returnurl", nextUrlPublic.href) headers.set("x-returnurl", nextUrlPublic.href)
headers.set("x-login-source", "mfa") headers.set("x-login-source", "mfa")
console.log("[mfa] nextUrlPublic", nextUrlPublic)
console.log("[mfa] headers", headers) console.log("[mfa] headers", headers)
console.log("[mfa] request.nextUrl", request.nextUrl) console.log("[mfa] request.nextUrl", request.nextUrl)
console.log("[mfa] request", request) console.log("[mfa] request", request)

View File

@@ -9,6 +9,10 @@ import type { NextMiddleware } from "next/server"
import type { MiddlewareMatcher } from "@/types/middleware" import type { MiddlewareMatcher } from "@/types/middleware"
export const middleware: NextMiddleware = (request) => { export const middleware: NextMiddleware = (request) => {
console.log("[updatelogin] start")
console.log("[updatelogin] request.nextUrl.origin", request.nextUrl.origin)
console.log("[updatelogin] request.nextUrl", request.nextUrl)
console.log("[updatelogin] request", request)
const returnUrl = request.nextUrl.searchParams.get("returnurl") const returnUrl = request.nextUrl.searchParams.get("returnurl")
if (!returnUrl) { if (!returnUrl) {
@@ -20,8 +24,14 @@ export const middleware: NextMiddleware = (request) => {
const headers = new Headers(request.headers) const headers = new Headers(request.headers)
headers.set("x-returnurl", returnUrl) headers.set("x-returnurl", returnUrl)
headers.set("x-login-source", "seamless") headers.set("x-login-source", "seamless")
console.log("[updatelogin] headers", headers)
return NextResponse.rewrite(new URL(`/${lang}/login`, request.nextUrl), { console.log("[updatelogin] request.nextUrl", request.nextUrl)
console.log("[updatelogin] request", request)
const u = new URL(`/${lang}/login`, request.nextUrl)
console.log("[updatelogin] rewrite url", u)
return NextResponse.rewrite(u, {
request: { request: {
headers, headers,
}, },