gpt4 book ai didi

python - 如何混合使用 Appengine 的 OpenID 和 facebook OAuth 在 AppEngine 上进行身份验证?

转载 作者:太空狗 更新时间:2023-10-30 00:00:22 24 4
gpt4 key购买 nike

Appengine 支持联合登录,其中可以将任意 OpenID 提供商添加到可以对用户进行身份验证的各方列表中。然而,一些组织——尤其是 facebook——不支持 OpenID。如何将 GAE 提供的 OpenID 支持与支持 OAuth 或其他登录机制的机制结合起来?

更多细节(假定为 GAE Python)...

我对 OpenID 机制的工作方式的理解如下:

  • 我从应用的配置选项中选择联合登录
  • 这让我可以通过create_login_url 机制
  • 有一些 Google session 管理用于跟踪经过身份验证的用户
  • 我使用 login: required 控制对资源的访问app.yaml
    • session 管理将检查用户是否通过身份验证在允许访问这些资源之前

我遇到的问题是,我看不出这种方法如何适合 facebook 的 OAuth - 如果资源由 Google 控制访问(根据 app.yaml),哪里可以插入 Facebook 身份验证?

注意事项:

  • 我知道 OpenID 和 OAuth 不同 - 我现在只对使用 facebook 进行身份验证感兴趣
  • 我确信有很多不同的方法来处理这个问题 - 我只是想知道是否有一些标准方法/最佳实践

最佳答案

我对此进行了一些深入研究,得出的结论是,无法将标准的 Appengine 身份验证机制(即 Appengine“免费”提供的机制)与 facebook 的 OAuth 集成在一起。更具体地说,app.yaml 登录控件只能与 Google 的标准机制相关,无法扩展它们以合并 facebook OAuth。这样做的原因是 Google 的标准机制控制 session ,并且没有机制来添加 app.yaml 登录控件识别的新 session 控件。

当然,可以在 Appengine 上将 Google 帐户和其他登录机制与 facebook 的 OAuth 集成,但要做到这一点,您需要复制 Google 在其标准身份验证机制(特别是 session 管理)中提供的一些功能。

我提出了一个更一般的问题,比较 Appengine 可能的不同社交身份验证选项,因为我认为它很有趣/有用,但稍微超出了这个问题的范围:它是 here

关于python - 如何混合使用 Appengine 的 OpenID 和 facebook OAuth 在 AppEngine 上进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7648264/

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