gpt4 book ai didi

openid - 跨子域的单个 OpenID

转载 作者:行者123 更新时间:2023-12-04 21:59:05 26 4
gpt4 key购买 nike

我在 StackOverflow 上使用 OpenID 来验证我的用户身份,这与这里的使用方式非常相似。我真正需要做的是让 OpenID 在我网站的所有子域中工作。

该站点的行为与 Kijiji 大致相同,因为每个地区都有自己的子域

  • calgary.example.com
  • toronto.example.com
  • vancouver.example.com

  • 当用户登录“calgary”并随后登录“toronto”时,他们将被迫在提供者处“授予许可”,从而产生新的 OpenID 并导致新的登录。

    我的应用程序“可以”在一个帐户下拥有多个 OpenID,但这样管理起来会很麻烦。

    有没有办法让提供商链接到顶级域,然后在所有子域中工作?

    我正在使用 DotNetOpenAuth。

    我的一个想法是始终强制用户登录 http://example.com然后使用表单例份验证 domain = ".example.com"允许导航到所有子域。

    最佳答案

    是的。设置 Realm ASP.NET 控件或您的 IAuthenticationRequest 上的属性(如果您以编程方式进行)到“https://*.example.com”。请注意,方案可以是 http 或 https,但它必须与 ReturnTo 属性中的任何方案相匹配,该方案将(默认情况下)成为当前请求中使用的方案。

    但是请注意,如果您有来自 Google 的现有用户,您领域的这种一次性更改将导致 Google 为您的用户生成全新的标识符,因此他们都将无法访问其帐户。因此,决定并始终保留一个 Realm 非常重要,否则您将不得不跳过主要障碍,以便稍后在更改时将您的用户与他们的帐户联系起来。

    但是不要担心通配符本身。当您将 https://*.example.com 设置为您的领域时,与该模式匹配的所有个人站点都将获得相同的 Google 标识符。

    关于openid - 跨子域的单个 OpenID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559173/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com