我使用的是“ @ auth0 / nextjs-auth0 ”,当我在本地主机中运行应用程序时,可以使用auth0登录,检索会话等。
>仅当我将项目部署到ZEIT / NOW时,问题才出现。
当我尝试使用Router.push('/api/login')
重定向到'api / login'时,它以以下方式中断:
502: BAD_GATEWAY
Code: NO_STATUS_CODE_FROM_FUNCTION
在我的日志中:
ERROR Unhandled Promise Rejection {
"errorType":"Runtime.UnhandledPromiseRejection",
"errorMessage":"ReferenceError: err is not defined",
"reason":{
"errorType":"ReferenceError",
"errorMessage":"err is not defined",
"stack":[
"ReferenceError: err is not defined",
" at Server.module.exports.pwh3.__webpack_exports__.default (/var/task/.next/serverless/pages/api/login.js:236:112)",
" at process._tickCallback (internal/process/next_tick.js:68:7)"
]
},
"promise":{
},
"stack":[
"Runtime.UnhandledPromiseRejection: ReferenceError: err is not defined",
" at process.on (/var/runtime/index.js:37:15)",
" at process.emit (events.js:203:15)",
" at emitPromiseRejectionWarnings (internal/process/promises.js:140:18)",
" at process._tickCallback (internal/process/next_tick.js:69:34)"
]
}
“ api /登录”的内容:
import auth0 from '../../utils/auth0';
export default async function login(req, res) {
try {
await auth0.handleLogin(req, res)
} catch(error) {
console.error(error)
res.status(error.status || 400).end(error.message)
}
}
有一条try / catch语句,所以我不知道为什么它会因未处理的诺言拒绝而中断。
auth0.handleLogin
的结果是一个承诺,因此我也尝试使用.catch语句捕获错误,但是什么也没有发生。
如果您需要更多信息,请告诉我,我真的不知道该放在哪里。
谢谢