- 질문 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.