从next.js 13 AppDir中的中间件重定向:真

3yhwsihp  于 2023-04-05  发布在  其他
关注(0)|答案(1)|浏览(194)

当我没有得到jwt后端时,我试图进行重定向。我在next.js 13中,appdir处于活动状态。
middleware.ts

import { NextResponse } from 'next/server'
import type { NextRequest } from 'next/server'

export function middleware(req: NextRequest) {
  const token = req.cookies.get('token')
  if (!token) {
    return NextResponse.redirect('/login')
  }
  return NextResponse.next()
}
rkttyhzu

rkttyhzu1#

这个应该可以

return NextResponse.redirect(new URL('/login', req.url))

看起来它需要绝对url
当用户访问“登录”页面时,不应运行此中间件。

const pathname = req.nextUrl.pathname

在登录页面检查路径名,如果“pathname===“login”则根据路径名调用“next”,不运行中间件

相关问题