我有一个现有的webapp,在App Engine上用Python运行,用户可以使用雅虎帐户通过open-id登录。现在,一旦他们登录,我希望他们能够通过OAuth访问他们的Yahoo联系人。我正在使用Yahoo Python SDK而且我只是卡住了。
我有消费者密钥,消费者密钥,应用程序ID和回调网址是同一页面,使用离开了。转到Yahoo登录页面似乎工作正常,用户使用auth_token和auth_verifier返回我的站点。我该怎么办?我需要为将来的请求存储哪些字符串?对于这些类型的请求,是否有适当的示例代码?感谢。
答案 0 :(得分:0)
您应该寻找 OpenID + Oauth混合协议。
OpenID + OAuth 混合协议允许Web开发人员将OpenID请求与OAuth身份验证请求相结合。
此扩展程序对于同时使用OpenID和OAuth的Web开发人员非常有用,特别是它通过请求批准一次而不是两次来简化用户的过程。
OAuth的目标是获得一个 来自Google的访问令牌,可以 然后用于交换用户特定的 使用Google服务的数据(例如 日历信息或地址 书)。常规OAuth流程是一个 四步序列:(1)要求一个 “请求”令牌,(2)要求令牌 被授权,触发用户 批准,(3)交换授权 请求令牌“访问”令牌, (4)使用访问令牌 与用户的Google互动 服务数据。更详细一点 说明,请参阅OAuth for Web 应用
使用 OpenID + OAuth ,此序列 基本上保持不变。该 得到一个不同的是 授权的OAuth请求令牌(步骤 1和2)包含在OpenID中 验证请求。通过这种方式, 用户可以批准登录和服务 同时访问。
Here使用Google进行混合协议的演示和source code (php)。
雅虎文档的