我如何使用Appengine的OpenID和facebook OAuth的组合在Appengine上进行身份验证?

2024-09-26 18:11:12 发布

您现在位置:Python中文网/ 问答频道 /正文

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

更多细节(假设是GAE Python)。。。在

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

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

我的问题是,我看不出这种方法如何与facebook的OAuth相匹配——如果资源是由Google控制的访问(perapp.yaml),那么在哪里可以插入facebook身份验证?在

注意事项:

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

Tags: 方法用户身份验证yaml列表facebookgoogle提供者
2条回答

我对此做了一点挖掘,我的结论是,不可能将标准的Appengine身份验证机制(即那些与Appengine“免费”提供的机制)与facebook的OAuth集成。更具体地说,app.yaml登录控件只能与Google的标准机制相关,并且无法扩展它们来合并facebook OAuth。原因是Google的标准机制控制会话,并且没有机制来添加由app.yaml登录控件识别的新会话控件。在

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

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

您可以看看Tipfy框架,它有一个Facebook身份验证extension,它允许用户使用他们的Facebook登录进行身份验证。在

相关问题 更多 >

    热门问题