如何在Django中远程进行身份验证?

时间:2012-10-05 15:42:48

标签: django authentication remote-access

基本上我正在做的是构建一个桌面应用程序,它需要连接到Web服务器,执行一些计算,然后将结果值发送回它。计算随着时间的推移而变化,并且还需要保持一定的安全性,这就是为什么我不只是将它们编码到桌面应用程序中。

问题是应该只允许经过身份验证的用户访问服务器。所以我正在寻找的是从我的桌面应用程序登录Django的方法(即桌面应用程序将弹出一个窗口,询问用户名和密码,然后将其发送到Django站点,用于验证用户,如果有效,将返回计算结果。它还需要作为会话工作(用户在开始时输入密码,然后在关闭桌面应用程序之前不需要再次登录,即使进行了多次计算)。

我认为我需要使用会话密钥,也许RemoteUserMiddleware描述here但我真的不知道从哪里开始编码。任何有正确方向的建议或指示都将受到极大的赞赏。

谢谢, -Morag

P.S。如果这很重要,那么桌面应用程序就是用VB.NET编写的。

1 个答案:

答案 0 :(得分:1)

有趣。我从来没有做过这样的事情,但我认为这是基本的想法:

1)了解Django会话;基本的想法是:

  • 使用django auth框架登录服务登录
  • Django将为您创建一个会话并处理所有困难的事情
  • Django返回带有sessionid cookie的HttpResponse。您需要将以下任何请求发回给我,以表明您自己并“在会话中运作”。
  • 使用django auth注销服务注销,会话被Django销毁。

2)现在,其余的相对容易。

  • 使用login / logout +计算服务的相应网址设置django urls.py
  • 使用适当的参数集
  • 对登录服务执行发布请求
  • 抓住响应,提取'sessionid'cookie并将其保存在某个地方
  • 在每个后续请求中,包含sessionid

这应该让你开始。祝你好运!