首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Auth0在自定义域上跨多个子域登录一次?

问如何使用Auth0在自定义域上跨多个子域登录一次?
EN

Stack Overflow用户
提问于 2022-02-27 22:20:21
回答 1查看 559关注 0票数 0

我们正在开发一套单独的SPA应用程序,其中每个应用程序都生活在一个单独的子域上,该子域具有一个公共父域。

代码语言:javascript
复制
app1.domain.com
app2.domain.com

我们希望避免客户不得不分别登录每个应用程序。因此,我们希望能够一次登录到一个应用程序,并在访问其他应用程序时继续注册。同样,退出其中一项也会在另一项中签字。

根据我对Auth0文档的研究,使用自定义域似乎可以做到这一点。因此,我们改变了计划,添加了自定义域auth.domain.com,并创建了一个可以登录的测试SPA应用程序。然后我创建了两个子域,并将它们指向应用程序。

登录到app1.domain.com起作用了。创建了auth0.{clientid}.is.authenticated cookie。然而,cookie的域是app1.domain.com,而不是我所希望的.domain.com。

然后我尝试访问app2.domain.com,并确认cookie肯定不在那里,我也没有登录。

是否有任何方法配置Auth0以使用户在所有子域中登录?

(我在Auth0论坛这里上发布了这篇文章,但没有收到回复)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-04 02:15:11

我打开了一个拉请求 on auth0-spa-js包来添加一个选项来指定cookie域。它被接受并合并到版本1.21.0和更高版本中。

在客户端配置中,添加一个cookieDomain选项。

代码语言:javascript
复制
const auth0 = await createAuth0Client({
  domain: '<AUTH0_DOMAIN>',
  client_id: '<AUTH0_CLIENT_ID>',
  redirect_uri: '<MY_CALLBACK_URL>',
  audience: '<MY_AUDIENCE>',
  cookieDomain: '.example.com',
})

注意:顶级cookie域总是以句点.开始。

在同一顶级域下的每个应用程序/子域上使用此配置,您将注意到这两个应用程序/子域上都存在auth0.{clientid}.is.authenticated cookie。当你访问任何其他人时,签到一个就会导致你被签到。

auth0-spa-js包被大多数用于Vue、React等的其他auth0插件使用,因此客户端配置实际上应该是相同的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71288896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档