TIL - 0222(미완)

  • 질문 import 상대경로랑 왜 song. 이걸 선호하시는지?
  • 패키지가 독립적으로 사용하기 위해서

  • sass or scss

  • user authentication in Django
    authentication system 에 둘다 포함
    https://docs.djangoproject.com/en/2.0/
    사용자 인증 시스템 :인증 - 유저가 있는지 :인가 - 사용자가 수행할 수 있는 기능
  • 서드파티에 있음
    Authentication against third-parties (OAuth, for example)
    페이스북, 카카오톡 그런 로그인
  • 기본 사용자 설정 - django가 주어진 것 https://docs.djangoproject.com/en/2.0/topics/auth/default/
  • username 과 password 사용
  • 사용자에 대한 테이블은 오직 한개 (관리자, 유저도 같은 테이블을 사용함)
# create_user 는 패스워드를 해시를 거쳐서 db에 저장
>>> user = User.objects.create_user('john', 'lennon@thebeatles.com', 'johnpassword')

Authenticating users¶

  • 인증 백엔드 : 로그인의 방법이 여러가지임 , 사용자 인증 정의 해놓은 부분을 인증 백엔드 , 만약 페이스북을 만들면 페이스북 인증 백엔드를 장고에게 전달

Authentication in Web requests¶

  • 로그인 되고, 그 session id 있는지 확인하고 로그인 유지 시키는 기능

Sever(장고) <- (localhost:8000) 로그인 : username,password <- Client (브라우저) sever: Client에 받은 데이터를 가지고 세션을 만듬/ 세션 특정 키값을 db에 저장

Sever(장고) -> set-cookie (Session id) -> Client (브라우저) client : 서버에서 받은 데이터를 자신의 cookie에다가 sesiion id 저장 cookie는 특정 호스트(localhost:8000)에서만 작용함

Sever(장고) <- request(Session id) <- Client (브라우저) sever 가 session id를 db에 확인해서 로그인을 유지하고 이럼 sessionMiddleware 가 리퀘스트랑 리스펀스 사이에 있는 session_id를 확인해서 여러 정보를 넘겨줌.

  • session_cookie_Age 기본적으로 2주 정도

How to log a user in

from django.contrib.auth import authenticate, login

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(request, username=username, password=password)
    if user is not None:
      # login에서 쿠키를 생성
        login(request, user)
        # Redirect to a success page.
        ...
    else:
        # Return an 'invalid login' error message.