来自远程站点的用户身份验证?

时间:2013-09-04 19:48:27

标签: django design-patterns authentication

我正在django中为客户的网站构建一个工具。

我正在构建的工具要求用户登录现有帐户。

用户身份验证由其他供应商的服务器上的旧版软件处理。

我可以联系编写遗留软件的程序员(我不确定他们的开发环境),但我不确定要问什么 - 我想要什么钩子,api,rpc等?

这种情况是否有设计模式?我应该使用或扩展django的哪些功能以使其尽可能简单? REMOTE_USER 听起来像一样正确,但我不确定在这种情况下我会如何使用它。

2 个答案:

答案 0 :(得分:0)

我建议使用jquery请求。您可以将用户名和密码(当然是加密的)发送到远程站点并获取cookie /会话密钥。

如果您有权访问数据库,我也建议您这样做。例如,如果远程主机使用MySQL,请要求为您的用户创建一个视图,然后您可以直接进行身份验证。但是,使用这种方法,您可能必须在settings.py之外设置MySQL连接。

答案 1 :(得分:0)

两种方法:

1)API:如果他们已经发布了他们的API,那么使用他们的API对用户进行身份验证会更加简单。

2)公开数据库:如果他们没有API,他们应该授予他们对数据库的访问权限,以便您可以进入并进行身份验证。但是在执行此操作时请记住以下几点:Django authenticate()将不起作用,因为默认情况下,authenticate方法再次验证auth_user表。您当然可以使用自己的逻辑手动进行身份验证,但这也是一个问题:您必须创建自己的会话和内容。因此,您可以选择在Django中使用custom user models(仅适用于Django 1.5)。

我相信其他人可能有更好的解决方案。