You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Next.js App Router中如何通过@auth0/nextjs-auth0的handleAuth获取请求查询参数

在Next.js App Router中通过API查询参数动态传递login_hint到Auth0

核心实现思路

在App Router的Route Handler里,handleAuth允许你为login选项传入一个函数,该函数会接收当前的Request对象,你可以从中提取URL的查询参数,再动态生成login_hint参数。

具体代码示例

创建app/api/auth/[auth0]/route.ts文件,内容如下:

import { handleAuth, handleLogin } from '@auth0/nextjs-auth0';

export const GET = handleAuth({
  login: async (req) => {
    // 解析请求URL并提取email查询参数
    const url = new URL(req.url);
    const email = url.searchParams.get('email');
    
    // 动态传入login_hint参数
    return handleLogin(req, {
      authorizationParams: {
        ...(email && { login_hint: email }) // 仅当email存在时添加该参数
      }
    });
  }
});

关键说明

  • App Router的Route Handler中,handleAuth的子方法(如login)会直接接收Request对象,这是和Pages Router的核心差异点。
  • 用new URL(req.url)解析请求地址,通过searchParams.get('email')获取查询参数里的邮箱值。
  • 借助可选链和逻辑与操作,确保只有当email参数存在时才传递login_hint,避免传入空值导致的异常。

调用示例

用户访问以下URL时,邮箱会自动填充到Auth0的登录提示中:

/api/auth/login?email=user@example.com

内容的提问来源于stack exchange,提问作者Gary Voss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 17:03:11