我在成功登录后重定向回子域时遇到了nextauth问题。我已经设置了自定义OAuthProvider https://next-auth.js.org/configuration/providers/oauth#using-a-custom-provider我的应用在不同的子域中运行(每个子域使用不同的auth提供程序)
我遇到的问题是,无论我使用什么配置,它都会重定向回.env中为NEXTAUTH_URL设置的URL。因此,当我从subdomain.example.com登录时,它会重定向到example.com。我已经尝试了配置中添加redirect_uri或callBackUrl的所有方法。甚至尝试使用重定向回调。
我使用的是JWT策略,没有定义自定义cookie。
任何帮助将不胜感激!
//Redirect Callback
async redirect({ url, baseUrl }) {
const { hostname } = new URL(url)
const { hostname: baseHostname } = new URL(baseUrl)
if (hostname !== baseHostname) {
Redirect to subdomain
const parts = hostname.split('.')
const subdomain = parts[0] // e.g. 'subdomain'
const domain = parts[1] // e.g. example.com
const newHostname = `${subdomain}.${domain}.com.au`
const newUrl = url.replace(hostname, newHostname)
return Promise.resolve(newUrl)
else {
return Promise.resolve(baseUrl)
}
}
字符串
1条答案
按热度按时间bpsygsoo1#
这不是完全相同的用例,但我认为它可能会有所帮助:
我使用
signIn()
回调根据用户的oauth电子邮件将用户路由到子域:字符串
在非生产区不起作用。