我在next-auth middleware.js文件中遇到了一个奇怪的行为:
下面的代码可以工作:
export {default} from 'next-auth/middleware'
export const config = {
matcher: ['/dashboard'],
pages: {
signIn: 'http://localhost:8000/accounts/login',
error: '/api/auth/error',
},
}
...而下面的则不会(将每个路由重定向到 /API/auth/signin?callbackUrl=%2F):
export {default} from 'next-auth/middleware'
export const config = {
matcher: ['/dashboard'],
pages: {
signIn: 'http://localhost:8000' + '/accounts/login', // <== NOTICE THE STRING CONCATENATION HERE
error: '/api/auth/error',
},
}
我在next@13.4
和next-auth^4.20.1
上。
有谁知道这是怎么回事吗?
2条答案
按热度按时间h6my8fg21#
我怀疑
Next
webpack配置是将pages
字段解析为您的实际页面,当它是一个常量字符串时,但当连接时,它无法在编译时解析。根据Next文档,
pages
字段不应包含主机部分:这应该与[... nextauth]. ts中的页面配置匹配。
further here:
使用此配置时,请确保这些页确实存在。例如错误:“/auth/error”指的是位于pages/auth/error.js的页面文件
6ljaweal2#
我认为这与编码问题有关。试试这个
new URL(url, [base])