javascript 在Next.js应用程序中,Auth 0端点“api/auth/me”返回404错误

7fyelxc5  于 2022-11-20  发布在  Java
关注(0)|答案(2)|浏览(122)

我已经完成了下面的tutorial,以使我的Next.js应用程序与Auth 0集成。我能够很好地登录和注销,但当尝试在登录后的页面上显示用户信息时,无法返回user对象。我已确保呈现user对象或env的Profile.js页面没有任何错误。本地文件与我的应用程序的密钥。
进一步检查后,我注意到浏览器控制台中出现错误,内容如下:Failed to Load Resource ... 404 Not Found: http://localhost:3000/api/auth/me .
这个错误让我有一种直觉,我的next.js应用程序和Auth 0之间的Map存在差异,因为我已经修改了next.config.js中的basepath:

module.exports = {
  basePath: '/my_path',

  webpack: (config) => {
    return config
  },

  env: {
  },

  publicRuntimeConfig: {
    BACKEND_API_URL: process.env.BACKEND_API_URL,
    CONSENT_COOKIE_NAME: 'ConsentCookie'
  },
}

有没有办法把我的basepath添加到user对象返回的端点中呢?最终结果看起来像这样:https://localhost:3000/my_path/api/auth/me
我不能100%肯定这将解决我的问题,让user对象正确返回,所以我愿意接受任何其他建议,并愿意添加更多的上下文周围的特定文件在我的应用程序。
编辑:在Auth 0论坛(link)上提出这个问题后,我被指向这个链接,这是另一个示例Next.jsAuth0示例应用程序,只是他们用TypeScript编写了前端(我不熟悉)。他们操作UserContext对象并重置ProfileURL,这正是我所追求的;那么JavaScript的等价物是什么呢
我提到的Auth 0论坛帖子的回复还包含了另一个链接,指向一个为登录创建自定义URL的示例函数。这与我所追求的非常接近,因为我再次尝试创建一个自定义auth URL来检索User对象并消除404 ... /api/auth/me not found错误。由于我对JS缺乏经验,我试图创建一个与前面所述的例子类似的函数的尝试失败了,那么这会是什么样子呢?

zwghvu4y

zwghvu4y1#

在找到一个侮辱性的简单解决方案后,我感到强烈的苦乐参半的情绪。
在readme.mdNextJS-Auth 0资源库的www.example.com中找到......经过几个小时的搜索,这段代码修复了我的所有问题-

// _app.js
function App({ Component, pageProps }) {
  return (
    <UserProvider loginUrl="/foo/api/auth/login" profileUrl="/foo/api/auth/me">
      <Component {...pageProps} />
    </UserProvider>
  );
}

现在回去擦我table上的眼泪..

wmtdaxz3

wmtdaxz32#

我也一直有这个问题。我在Vercel上部署的Next应用程序所发生的事情是,所有的api/auth/*路线在生产中都不工作,但一切都在本地工作。
我正在使用Auth0通用登录体验

// package.json
...
"dependencies": {
    "@auth0/nextjs-auth0": "^1.9.2",
}
...

我以前只有函数

// api/auth/[...auth0].ts
import { handleAuth } from "@auth0/nextjs-auth0";

export default handleAuth();

因此,我所做的就是在应用程序中创建它们各自的文件中所需的所有路径。
第一个

相关问题