2011-09-22 71 views
0

我的GAE网站应该与第三方网站进行通信(即应该使用它的API)。 该第三方站点需要HTTP摘要式身份验证。 为了支持我用下面的头,它工作得很好:如何通过GAE保持第三方的站点凭证?

headers={'Authorization': 'Basic %s' % base64.b64encode('login:pass')} 

我如何检查是否对端授权仍然有效,如果不是的话,我应该怎样要求用户输入用户名和再次通过?

回答

1

如果验证细节无效,该站点将返回一个401 Unauthorized响应。检查有效性的唯一方法是提出请求 - 任何请求 - 并查看您是否获得401.

如何提示用户更新凭据完全取决于您的应用程序,它的设计方式以及您的用户是。

+0

谢谢。当第一次授权发生时,我是否收到一些相同的细节?即有效期?看起来最好的方法是将结果base64数据保存在memcache中一段时间​​,并在每个请求中使用它。一旦memcache数据已经不可用 - 请求用户再次输入。 –

+0

@LA_否 - HTTP身份验证没有实现任何类型的范围等。服务器没有理由甚至有一个无限期 - 你发送用户名和密码(并因此认证新)与每个新的请求。我不建议仅依靠memcache来存储数据 - 将其作为备份存储在数据存储中。 –

+0

谢谢,尼克。我认为最好的方法是将其存储在用户的Cookie中 - http://stackoverflow.com/questions/7544197/how-to-set-cookies-with-gae-python-for-1-month –