2013-03-05 3 views
0

사용자 정의 로그인/로그 아웃 기능을 구현하려고합니다. 내 요구 사항은 내장 된 장고 로그인 기능과 약간 다릅니다. 그래서 사용자가 로그인했는지 여부를 확인하기 위해 데이터베이스에 값 0/1을 넣을 수있는 방식으로이 기능을 구현해야합니다. 나는 그것을위한 부울을 가진다. 여기에있는 질문은 실제로 다음과 같습니다. 사용자/변수 (예 : users.is_logged_in = True)를 모든 HTML 템플릿에 로그인하여 내 사용자가 (내 응용 프로그램에) 알 수 있음을 알려주는 변수는 무엇입니까? 또한 그는 모든 HTML 페이지의 링크를 클릭하여 로그 아웃 할 수 있어야합니다. 사용자가 성공적으로 로그인 할 때 만들 수 있고 자리 표시 자 종류를 만들 수있는 전역 템플릿이 있습니까? 내 코드는 여기에 있습니다 :django에서 사용자 정의 전역 로그인/로그 아웃 기능을 구현하는 방법

def checkIfUserIsValid(request, template_name='appCenter.html'): 
email = str(request.POST.get('email','')).strip() 
password = str(request.POST.get('password','')).strip() 
try: 
    users = Users.objects.get(email = email, password = password) 
    users.is_logged_in = True 
    users.save() 
    return direct_to_template(request, template_name, context_instance=RequestContext(request)) 
except Users.DoesNotExist: 
    incorrectUserOrPassError = "Incorrect Username or Password. Please try again." 
    return render_to_response('index.html', {'incorrectUserOrPassError':incorrectUserOrPassError}, 
            context_instance=RequestContext(request)) 

def logOutUser(request, template_name='index.html'): 
    return direct_to_template(request, template_name, context_instance=RequestContext(request)) 

PS : 나는 렌더링() 메소드로 보았다 ..

return render(request,'appCenter.html',{'users':users}) 

내가 같은 것을 할 및 글로벌 템플릿으로 템플릿을 사용할 수있다 또는 뭔가? 하지만 내가 보는 문제는 인증 된 즉시 appCenter.html로 사용자를 리디렉션해야한다는 것입니다.

답변

4

하지 마십시오.

데이터베이스에 일반 텍스트 암호를 저장하고 있습니다. 이것은 안전하지 않습니다. 정말로,하지 마세요.

문맥 처리기를 통해 모든 템플릿에 이미 user 개체가 포함되어있는 장고의 기본 제공 인증 시스템으로는 더 이상 수행 할 수없는 것을 표시하지 않습니다. 그것을 사용하십시오.

+0

그래, 내 다음 단계는 원시 암호를 암호화하는 것입니다. django에 내장 된 기능을 구현하기위한 링크를 지적 해 주시겠습니까? 아니면 그걸 어떻게 할 수 있을까요? –

+1

https://docs.djangoproject.com/ko/1.5/topics/auth/ - 1.5를 사용하고 있다고 가정하면이 영역에 몇 가지 유용한 개선 사항이 포함되어 있어야합니다. –

+0

좋아요! 이 예제는 설문 조사의 예제를 따라 갔지만, 상황에 따라 필자는 auth_user 테이블에있는 "username"필드를 사용하고 싶지 않습니다. 이것은 필수 필드입니다! 그래서이 모든 혼란이 있습니다. ( –

관련 문제