通过OAuth在App Engine上访问雅虎联系人(Python)
我有一个现成的网页应用,运行在Python的App Engine上,用户可以通过Yahoo账号使用开放身份登录。现在,一旦他们登录后,我希望他们能够通过OAuth访问他们的Yahoo联系人。我正在使用Yahoo的Python开发工具包,但遇到了一些问题。
我已经有了消费者密钥、消费者秘密、应用ID,回调网址也是用户离开的同一页面。去Yahoo的登录页面似乎没问题,用户也能带着一个auth_token和auth_verifier回到我的网站。那么,我该如何处理这些呢?我需要存储哪些字符串以便将来使用?有没有好的示例代码可以参考这些请求?谢谢。
1 个回答
你应该关注一下OpenID+Oauth混合协议。
OpenID+OAuth混合协议让网页开发者可以把OpenID请求和OAuth认证请求结合在一起。
这个扩展对同时使用OpenID和OAuth的开发者特别有用,因为它简化了用户的操作,只需要用户一次批准,而不是两次。
OAuth的目标是从Google获取一个 访问令牌,这样就可以用这个令牌 和Google服务交换用户的特定 数据(比如日历信息或通讯录)。 正常的OAuth流程有四个步骤: (1) 请求一个“请求”令牌,(2) 请求 这个令牌被授权,这会触发用户的 批准,(3) 用授权的请求令牌换取 一个“访问”令牌,(4) 使用访问令牌 来和用户的Google服务数据进行 交互。想了解更详细的内容,可以查看 OAuth for Web Applications。
在OpenID+OAuth中,这个流程 基本上是一样的。不同的是,获取 授权的OAuth请求令牌(步骤1和2) 被包含在OpenID认证请求中。这样, 用户可以同时批准登录和服务访问。