Auth0 端点 "api/auth/me" returns Next.js 应用程序中的 404 错误
Auth0 Endpoint "api/auth/me" returns a 404 Error in Next.js App
我已经完成了以下 tutorial 以使我的 Next.js 应用程序与 Auth0 集成。
我可以正常登录和注销,但是在登录后尝试在页面上显示用户信息时,无法返回 user
对象。我已确保使用我的应用程序的密钥呈现 user
对象或 env.local 文件的 Profile.js 页面没有任何问题。
进一步检查后,我注意到我在浏览器控制台中收到一条错误消息:Failed to Load Resource ... 404 Not Found: http://localhost:3000/api/auth/me
。
这个错误让我直觉认为我的 next.js 应用程序和 Auth0 之间的映射存在差异,因为我修改了 next.config.js:
中的基本路径
module.exports = {
basePath: '/my_path',
webpack: (config) => {
return config
},
env: {
},
publicRuntimeConfig: {
BACKEND_API_URL: process.env.BACKEND_API_URL,
CONSENT_COOKIE_NAME: 'ConsentCookie'
},
}
有没有办法将我的基本路径添加到 user
对象从中返回的端点?最终结果类似于:https://localhost:3000/my_path/api/auth/me
我不能 100% 确定这会解决我的问题,让 user
对象正确返回,所以我愿意接受任何其他建议,并愿意在我的应用程序中添加更多关于特定文件的上下文。
编辑:
在 Auth0 论坛上提出这个问题后(link), I was pointed towards this link,这是另一个例子 Next.js Auth0 示例应用程序,除了他们用 TypeScript(我不熟悉)编写了他们的前端。他们正在操纵UserContext
对象并重置配置文件URL,这就是我所追求的;那么 JavaScript 相当于什么?
我提到的对 Auth0 论坛 post 的相同回复还包括另一个 link 示例函数,该函数为登录创建自定义 URL。这非常接近我所追求的,因为我正在尝试创建一个自定义身份验证 URL 来检索 User
对象并消除 404 ... /api/auth/me not found
错误。
由于我对 JS 的经验不足,我尝试创建与前面所述的示例类似的函数的尝试失败了,那么这会是什么样子呢?
在找到解决此问题的极其简单的解决方案后,我感到苦乐参半。
在 NextJS-Auth0 存储库的 readme.md 中找到...
经过数小时的寻找解决方案后,这一小段代码解决了我所有的问题 -
// _app.js
function App({ Component, pageProps }) {
return (
<UserProvider loginUrl="/foo/api/auth/login" profileUrl="/foo/api/auth/me">
<Component {...pageProps} />
</UserProvider>
);
}
现在回去擦掉我桌子上的眼泪..
我已经完成了以下 tutorial 以使我的 Next.js 应用程序与 Auth0 集成。
我可以正常登录和注销,但是在登录后尝试在页面上显示用户信息时,无法返回 user
对象。我已确保使用我的应用程序的密钥呈现 user
对象或 env.local 文件的 Profile.js 页面没有任何问题。
进一步检查后,我注意到我在浏览器控制台中收到一条错误消息:Failed to Load Resource ... 404 Not Found: http://localhost:3000/api/auth/me
。
这个错误让我直觉认为我的 next.js 应用程序和 Auth0 之间的映射存在差异,因为我修改了 next.config.js:
中的基本路径module.exports = {
basePath: '/my_path',
webpack: (config) => {
return config
},
env: {
},
publicRuntimeConfig: {
BACKEND_API_URL: process.env.BACKEND_API_URL,
CONSENT_COOKIE_NAME: 'ConsentCookie'
},
}
有没有办法将我的基本路径添加到 user
对象从中返回的端点?最终结果类似于:https://localhost:3000/my_path/api/auth/me
我不能 100% 确定这会解决我的问题,让 user
对象正确返回,所以我愿意接受任何其他建议,并愿意在我的应用程序中添加更多关于特定文件的上下文。
编辑:
在 Auth0 论坛上提出这个问题后(link), I was pointed towards this link,这是另一个例子 Next.js Auth0 示例应用程序,除了他们用 TypeScript(我不熟悉)编写了他们的前端。他们正在操纵UserContext
对象并重置配置文件URL,这就是我所追求的;那么 JavaScript 相当于什么?
我提到的对 Auth0 论坛 post 的相同回复还包括另一个 link 示例函数,该函数为登录创建自定义 URL。这非常接近我所追求的,因为我正在尝试创建一个自定义身份验证 URL 来检索 User
对象并消除 404 ... /api/auth/me not found
错误。
由于我对 JS 的经验不足,我尝试创建与前面所述的示例类似的函数的尝试失败了,那么这会是什么样子呢?
在找到解决此问题的极其简单的解决方案后,我感到苦乐参半。
在 NextJS-Auth0 存储库的 readme.md 中找到... 经过数小时的寻找解决方案后,这一小段代码解决了我所有的问题 -
// _app.js
function App({ Component, pageProps }) {
return (
<UserProvider loginUrl="/foo/api/auth/login" profileUrl="/foo/api/auth/me">
<Component {...pageProps} />
</UserProvider>
);
}
现在回去擦掉我桌子上的眼泪..