2015-10-23 1 views
0

Я разрабатываю сайт в Django, и я хочу, чтобы пользователь, нажав кнопку «Войти», аутентифицировал его на моем веб-сайте и в ide.cigiden.cl. Аутентификация на моем веб-сайте работает правильно, используя django-registration-redux, но внешний - нет.Вход на Django Python на внешний веб-сайт, ajax или urlllib

Я знаю верительные грамоты для ide.cigiden.cl, и это не проблема для меня. Но мне нужно знать, как это сделать. Я пробовал много ответов на этом сайте, с urllib, urllib2 и т. Д. Я сейчас общаюсь с разработчиком ide.cigiden.cl, он сделал это в Django. Поэтому я мог попросить его написать код в файлах views.py или других файлов, чтобы помочь мне аутентифицироваться.

Адрес, на который вы входите, является ide.cigiden.cl/account/login/ Он также сказал мне, что, возможно, попытка с ide.cigiden.cl/account/ajax_login может работать.

В файле 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, это будет потрясающе.

ответ

0

Это, как я хотел бы сделать это:

  1. пользователь нажмет Вход
  2. Аутентифицировать его на своем сайте
  3. Перенаправление его ide.cigiden.cl (с использованием JS) с уникальным лексем
  4. Автоматически аутентификации пользователя на ide.cigiden.cl
  5. Перенаправление на ваш сайт

Примечания:

Когда пользователь аутентифицирован, в его браузере установлен файл cookie. Когда пользователь нажимает кнопку «Вход» на вашем сайте, он будет проходить проверку на вашем сайте, и только cookie вашего сайта будет сохранен в его браузере. Ему также понадобится auth cookie от ide.cigiden.cl, чтобы пройти аутентификацию. Вот почему вам нужно перенаправить.