在Next.js 13服务器应用程序目录中获取查询参数的函数是什么

bfhwhh0e  于 2023-05-28  发布在  其他
关注(0)|答案(1)|浏览(144)

我想在localhost/get/point?token=hello中获取查询令牌。

import { NextResponse } from 'next/server'
import base64url from 'base64url'

type Params = {
  token: string
}

export async function GET(req: Request, context: { params: Params }) {
  
  const token = req.query.token

  const tokenData = JSON.parse(base64url.decode(token.split('.')[1]))
  const verifyResult = Jwt.verify(token)
  if (verifyResult == JwtStatusCode.TokenExpired) {
    return NextResponse.json({ error: 'Token expired', message: 'Token expired'}, { status: 401 })
  } else if (verifyResult === JwtStatusCode.TokenInvalid) {
    return NextResponse.json({ error: 'Token invalid', message: 'Token invalid' }, { status: 401 })
  }
  const data = await client.user.findMany({
    where: { name: tokenData.name }
  })
  if (data.length != 0) {
    NextResponse.json({
      point: data[0].point,
      message: 'Success'
    }, { status: 200 })
  }
}

在pages目录中,我使用req.query,但在Next13应用程序目录中它是什么?
我尝试了URL分割,但我认为它不是有效的。

3pmvbmvn

3pmvbmvn1#

const { searchParams } = new URL(req.url)
const token = searchParams.get('token') as string

相关问题