TIL - 0319~0322

0319

오늘 한 일

  • REST framework 튜토리얼(4) 진행

오늘 할 일

  • REST framework 정리
  • Aithentication - tokenAuthentication 까지 읽기

부족한 부분

  • Django user part

봐야할 자료

  • REST framework - pagination 까지
  • Django class-basic view

뷰셋

  • dispatch method에 따라서 어떻게 처리하는지 알려주는 역할
  • as_view

    ajax

  • 비동기식 데이터 요청
  • 비동기적으로 데이터를 주고 받는 것을 ajax ex) 인스타그램, 페이스북
  • 프론트엔드의 경우 ajax

0320

오늘 한 일

  • 멜론 APIView 사용해서 api 생성
  • 멜론 프론트 엔드 작성

Token

  • AnonymousUser가 뜨는 경우, REST_FRAMEWORK 설정 넣기(setting.py)
  • 최초 로그인 이후, 토큰으로 정보를 주고 받는다.

exception

  • rest framewrk에서 제공하는 것들이 있음

Serializer relations

  • 다대다 관계
  • 중첩된 관계 (Nested relationships)

0321

오늘 할 일

  • 프론트엔드에서 post요청으로 토큰 받아서 저장하기
  • 팀프로젝트 모델링하기
  • 멜론 아티스트 api 복습하기 -> 다 못햇음 ㅜㅜ(중첩된 데이터구조 부터 다시)
  • TDD 공부하기 - 5장까지 마무리

jQuerys

  • button.style.display = “inline-block”;
  • (jquery) button.css(‘display’,’none’)
// jquery객체로 바꿔준다.
var a = button
var j_button = $(a) = jQuery(a)
  • 참고 자료
  • 키는 중복없이 하나만(딕셔너리처럼)
  • document.cookie = "username=kahee; expires=Tue, 16 date expires; path=/" 넣으면 자동으로 설정된 날짜 이후에 쿠키가 삭제 된다. 그리고 expires가 없는 경우엔 브라우저를 껐다켜면 사라진다. path는 쿠키가 저장되는 장소.

postman - token 오류

  • postman에서 응답을 못하는 오류가 있었다. 그런데 알고보니 토큰 값뒤에 …이 있어서 발생된 것! 이것은 붙여넣기 할때 뒤에 공백값까지 같이 들어와서 발생된 것!
{"key":"Authorization","value":"Token 1660b3d01123b7f91d54e2d6716a59882eb9ab18..."]

0322

오늘 한 일

  • Token 저장
  • Token 있는지 확인한 후, get 요청으로 user 정보 받음
  • facebooklogin in frontend

내일 할 일

  • 해커톤~~~~
  • TDD 6장 마무리하기
  • Mleon API 복습하기 (facebook 로그인 기능구현까지)

Token -> User 정보 넘겨주기


1. Client -> HTTP Header 'Authorization: Token <value>'
2. Server (DRF) middleware
  -> request의 HTTP Header를 검사, Authorization키에 'Token <value>'가 있으면
  -> 그 request.user에 Token value에 해당하는 User를 할당

3. Server APIView
  -> request를 사용해서 permissions를 체크
  -> 성공하면 get() 메서드 실행 후 리턴

Django facebook login

  1. 사이트에서 ‘페이스북 로그인’버튼 클릭
  2. 페이스북 사이트로 이동해서 사용자 인증 및 권한 인가 완료 (클라이언트 쪽)
  3. 토큰이 사이트에 get매캐변수로 전달됨 (페이스북 -> 사이트 서버로 전달) // 프론트엔드
  4. 사이트의 View에서 받은 토큰을 사용해서 페이스북과 인증과정 거침 (사용자 개입 없음)
  5. 인증이 완료되면 사이트에서 회원가입 및 로그인 유지를 위한 처리 -오류 앱 도메인이 추가가 안되있는 경우 오류가 난다. (localhost)

Token login

  1. 클라이언트가 username, password를 이용해 토큰을 요청
  2. 서버는 전달받은 자격 인증을 이요해서 유저를 인증, 성공하면 Token을 돌려줌
  3. 클라이언트는 받은 Token을 이후 요청마다 HTTP Header에 담다 보냄

클라이언트의 Facebook login with Token

  1. 클라이언트가 Facebook access_token을 이용해 토큰을 요청
  2. 서버는 전달받은 access_token을 이용해서 유저를 인증, 페이스북토큰의 검증에 성공했고 해당하는 유저가 있으면 Token을 돌려줌 페이스북토큰의 검증에 성공했으나 해당하는 유저가 없으면 유저를 생성 후 Token을 올려줌 페이스북의 검증에 실패했으면 오류 발생시킴
  3. 클라이언트는 받은 Token 을 이후 요청마다 HTTP Header에 담아 보냄

서버측의 Facebook access_token을 사용한 authenticate Backend구현

  • AuthTokenForFacebookAccessTokenView() -> /api/members/facebook-auth-token/
  • 클라이언트에서 getAuthTokenForFacebook() 구현