Sea*_*n M 6 python openid google-app-engine facebook
Appengine支持联合登录,其中可以将任意OpenID提供程序添加到可以对用户进行身份验证的各方列表中.但是,一些组织 - 尤其是Facebook - 不支持OpenID.如何将GAE提供的OpenID支持与支持OAuth或其他登录机制的机制相结合?
更多细节(GAE Python假设)......
我对OpenID机制的工作方式的理解如下:
create_login_url机制轻松添加OpenID提供程序
login: requiredmy
控制对资源的访问app.yaml
我遇到的问题是,我无法看到这种方法如何适合Facebook的OAuth - 如果资源是由谷歌(每个app.yaml)控制访问,哪里可以插入Facebook身份验证?
笔记:
我对此进行了一些挖掘,我的结论是,不可能将标准 Appengine 身份验证机制(即通过 Appengine“免费”提供的机制)与 facebook 的 OAuth 集成。更具体地说,app.yaml登录控件只能与 Google 的标准机制相关,无法扩展它们以合并 facebook OAuth。其原因是 Google 的标准机制控制会话,并且没有机制来添加app.yaml登录控件可识别的新会话控件。
当然,可以将 Google 帐户和其他登录机制与 Appengine 上的 facebook 的 OAuth 集成,但要做到这一点,您需要复制 Google 在其标准身份验证机制(特别是会话管理)中提供的一些功能。
我提出了一个更普遍的问题,比较 Appengine 可能的不同社交身份验证选项,因为我认为它很有趣/有用,但稍微超出了这个问题的范围:它在这里