Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Python登录到外部网站、ajax或URLLIB_Python_Ajax_Django_Login_External - Fatal编程技术网

Django Python登录到外部网站、ajax或URLLIB

Django Python登录到外部网站、ajax或URLLIB,python,ajax,django,login,external,Python,Ajax,Django,Login,External,我正在用Django开发一个网站,我希望当用户点击登录按钮时,它能在我的网站和ide.cigiden.cl中对他进行身份验证。 使用django registration redux,我的网站中的身份验证可以正常工作,但外部的不行 我知道ide.cigiden.cl的凭据,这样做对我来说不是问题。但我需要知道怎么做。我在这个网站上尝试了很多答案,包括urllib、urllib2等等。 我现在正在联系ide.cigiden.cl的开发者,他是在Django做的。所以我可以让他在views.py或其

我正在用Django开发一个网站,我希望当用户点击登录按钮时,它能在我的网站和ide.cigiden.cl中对他进行身份验证。 使用django registration redux,我的网站中的身份验证可以正常工作,但外部的不行

我知道ide.cigiden.cl的凭据,这样做对我来说不是问题。但我需要知道怎么做。我在这个网站上尝试了很多答案,包括urllib、urllib2等等。 我现在正在联系ide.cigiden.cl的开发者,他是在Django做的。所以我可以让他在views.py或其他文件中编写一些代码来帮助我进行身份验证

您登录的url是ide.cigiden.cl/account/login/ 他还告诉我,尝试使用ide.cigiden.cl/account/ajax_登录可能有用

在项目的views.py文件中,他有以下代码:

def ajax_login(request):
    if request.method != 'POST':
        return HttpResponse(
            content="ajax login requires HTTP POST",
            status=405,
            mimetype="text/plain"
        )
    form = AjaxLoginForm(data=request.POST)
    if form.is_valid():
        username = form.cleaned_data['username']
        password = form.cleaned_data['password']
        user = authenticate(username=username, password=password)
        if user is None or not user.is_active:
            return HttpResponse(
            content="bad credentials or disabled user",
            status=400,
            mimetype="text/plain"
        )
        else:
            login(request, user)
            if request.session.test_cookie_worked():
                request.session.delete_test_cookie()
        return HttpResponse(
            content="successful login",
            status=200,
            mimetype="text/plain"
        )
    else:
    return HttpResponse(
        "The form you submitted doesn't look like a username/password combo.",
        mimetype="text/plain",
        status=400)
就这样。我将非常感谢您的帮助!
我不太擅长javascript,所以如果我能用python完成它,那将是非常棒的。

我将这样做:

  • 用户点击登录
  • 在你的网站上验证他
  • 使用唯一的令牌将他重定向到ide.cigiden.cl(使用JS)
  • 自动对ide.cigiden.cl上的用户进行身份验证
  • 重定向回您的站点
  • 注释

    当用户通过身份验证时,将在其浏览器上设置cookie。当用户点击您站点上的登录按钮时,他将在您的站点上进行身份验证,并且只有您站点的cookie将保存在他的浏览器上。他还需要ide.cigiden.cl中的auth cookie在那里进行身份验证。这就是你需要重定向的原因