이러한 클라이언트의 쿠키 정보와 협력 할 필요가 저장되며, 로그인시 달성하기 위해 세션 서버에 저장되어있는 로그인 기능을 같은 대답 기법. 사용자가 액세스 사이트를 특별 토큰을 보유 할 때 사용자의 쿠키 정보에 저장, 특히 특별한 토큰 정보 사이트의 세션 여부를 확인하기 위해 데이터베이스에 쿠키에서이 특별한 토큰을 얻을 것이다 이 정보는 인증이 성공하면 검증은 사용자가 로그인 그래서 프롬프트되지하라는 메시지가 실패하면, 당신은 클라이언트에 대한 사용자의 정보 등을 넣을 수 있습니다, 토큰 대응하고있다.
HTTP 쿠키 인해 물을 수 없습니다 http 프로토콜하지만, 현실, 계약의 범위에 속하지 않는, 그러나 우리는 "보류"필요하기 때문에 쿠키가 이러한 시나리오에서 태어났다.
작품 쿠키입니다 : 서버에서 생성 된 내용은, 브라우저가 로컬로 저장 요청 수신, 브라우저 방문, 브라우저가 자동으로 쿠키를 가져올 때, 그래서 서버가 쿠키의 내용으로 판단 할 수 있음 "입니다 "가.
쿠키는 어느 정도 해결되지만,에 "보류"요구하지만, 쿠키 자체는 4096 바이트까지 지원하며, 클라이언트 자체에 저장되어있는 쿠키에 의한, 차단 또는 도난, 따라서 뭔가가 필요, 그것을 새가 될 수 있습니다 더 바이트를 지원하며, 자신이 서버에 저장, 높은 보안이 있습니다. 즉 세션입니다.
무 상태의 HTTP 프로토콜의 특성에 기반 문제, 서버가 방문자 모르는 "사람." 그리고 상기 쿠키는 다리의 역할을 할 것이다.
그 사용자가 쿠키를 통해 액세스 할 수 있도록 우리는 각 클라이언트에 할당 된 고유 한 ID 쿠키를 제공 할 수 있습니다, 서버는 사람들에게 알고있다 "." 그럼 우리는 ID의 다른 등등 "계정 암호"와 같은 쿠키, 몇 시간 동안 서버에 저장된 개인 정보를 기반으로.
요약하면 : 쿠키, HTTP 상태 비의 부족을 만회 ""사람들에게 서버 노하우를 수 있도록 있지만 텍스트의 형태로 쿠키가 로컬로 저장, 그들의 보안이 좋지 우리는 쿠키에 의해 서로 다른 사용자를 식별 할 수 있도록, 세션에서 4096 바이트보다 개인 정보와 텍스트를 저장에 대응.
또한, 위에서 언급 한 쿠키와 세션의 공통점은 언어와 프레임 워크에 한정되지 않고, 무언가가 실제로
####
1. 쿠키
HTTP 프로토콜은 무 상태입니다. 따라서, 다른 방법의 도움이 원격 서버와 클라이언트가 완료 통신 있었다 무엇을하기 전에 알 수없는 경우. 쿠키 중 하나입니다 "다른 방법." 쿠키 일반적인 응용 프로그램 시나리오는 사이트에 로그인 한 사용자를 기록하는 데 사용됩니다.
사용자가 성공적으로 로그인 한 후, 다음 서버는 (일반적으로 암호화) 쿠키 파일을 전송합니다. 클라이언트 (일반적으로 웹 브라우저)는 수신 된 파일 쿠키를 저장합니다. 서버에 클라이언트 커넥트가 서버에 쿠키 파일을 전송하는 다음 번에, 서버는 그 의미를 확인 (다시 피하기 로그) 기록 복원.
#####
1.1 설명
대답 기술적 브라우저 |
#####
1.2 쿠키 방법
设置 : response.set_cookie (키 값 MAX_AGE = 없음, exprise = 없음) |
참고 : 쿠키가 없습니다 크로스 브라우저
매개 변수 정의 :
MAX_AGE 및 exprise 시간 :
MAX_AGE : 초, 쿠키 만료 시간을 지정하는 정수 |
설정 10 일 후에 만료 :
exprise = datetime.datetime.now () + timedelta (일 = 10) 10 일 만료 |
사용 기간 제한 없음 :
없음 exprise 세트는 만료되지 않습니다 것을 나타냅니다 |
####
2. 세션
#####
2.1 설명
쿠키에 따라 서버 기술 세션, |
#####
2.2 공개 세션 설정
1) 사용 가능 장고 SESSION
대신에 다음과 같은 설정을 수정
INSTALLED_APPS : |
각 객체는, 세션 HttpResponse에 속성이 사전 같은 객체이다
#####
2.3 공통 운영
request.session [ '사용자'] = 사용자 설정 데이터 |
3. 로그인 인증 세션 + 쿠키 달성
로그인 인증 방법 뷰 만들기 1
데프 (요청) : 경우 request.method == 'GET' : 반환 렌더링 (요청 'login.html을' ) 의 경우 request.method == 'POST' : 사용자 이름 = request.POST.get ( '이름' ) 암호 = request.POST.get ( '암호' ) # 2校验数据完整性 플래그 = 전체 ([아이디, 비밀번호]) |
적절한 장식을 생성합니다
DEF login_required (FUNC) : DEF의 check_login (요청) : 은 try : 세션 ID # 확인 쿠키 값이 존재 해당 기록 정보 # django_session 인증 서버 테이블이 있으면 현재 값 설정을 취득한 경우 #의 USER_ID request.session을 [만든다 'USER_ID' ] 를 제외하고 예외 AS E : 리턴 HttpResponseRedirect를 (리버스 ( '사용자 : 로그인' )) 반환 FUNC (요청) |
3. 취소를 달성하기
|