D+28

  1. firebase 가 OAuth server를 제공하는지

  2. firebase에서 이메일+비밀번호로 로그인하는 과정 다시 한 번 공부하고 정리하기



firebase - 이메일로 로그인하기

  • 가입과 로그인이 편리하다.

  • 다른 SNS계정이 없어도 된다.

  • 비밀번호를 입력하거나 기억할 필요가 없다.

  1. user에게 이메일 제공 요청하는 인터페이스를 제공한다.

  2. sendSignInLinkToEmail을 호출하여 firebase가 user의 이메일에 인증 링크를 전송하게 한다.

  3. 이메일 링크를 만드는 방법에 대한 지침을 제시하는 actionCodeSettings객체 생성

    1. url : redirect 할 주소, 이를 통해 이메일 확인, 비밀번호 재설정, 이메일 변경, 이메일 취소 등의 기능을 설정할 수 있다.

    2. 사용앱(android 또는 ios)설정

    3. handleCodeInApp : true

    4. dynamicLinkDomain

  4. user에게 이메일 인증을 요청한다.

  5. 이메일 로그인을 user가 완료할 경우 사용자의 이메일을 저장한다.

  6. 위 과정을 통해 이메일 링크로 로그인을 완료한다.

  • 보안 문제

  1. 로그인하려면 로그인 이메일 주소가 처음에 로그인 링크를 보낸 주소와 일치해야 한다.

Admin Auth API

Firebase Admin SDK를 사용하면 자체 서버를 firebase 인증과 통합할 수 있다. 또한 Admin SDK로 사용자를 관리하거나 인증 토큰을 관리할 수 있다. Firebase사용자를 관리할 때마다 Firebase콘솔에 접속하기는 번거롭기 때문에 사용자에게 API를 제공한다. 또한 firebase에서 제공하지 않는 회사의 ID(ex 카카오, 네이버)와 연결하고 싶을 때 사용한다. firebase 인증의 기본적인 용도는 앱의 사용자를 식별하여 firebase 실시간 DB, cloud storage 등의 다른 firebase 서비스에 대한 액세스를 제한하는 것이다. 하지만 인증 서비스(Admin Auth API)를 통해 firebase가 아닌 내 서버에서 이러한 사용자 식별이 가능하다.

결론 : firebase에서의 부족한 점을 보완하기 위한 API이다.


웹 표준이란

월드 와이드 웹의 측면을 서술하고 정의하는 공식 표준이나 다른 기술 규격을 가리키는 일반적인 용어이다. 예를 들어 W3C가 있다.


JWT(다시 정리)

사용자 정보를 json객체에 담아 이를 암호화하고 해싱작업을 거쳐 문자열 토큰을 생성하는 인증 방식이다. 이 토큰을 HTTP header에 추가하여 요청을 보냄으로써 사용자 인증을 얻게 된다. 권한 claim이라고 하는 정보에 디지털 서명을 한 후 비밀 서명키로 검증하는 도구이다. JWT는 OAuth와 같이 token기반의 인증방식이다.


형태 : 세 가지의 문자열(헤더, 페이로드, 시그니처)로 이루어져 있다.

인증방식으로 session, JWT, baseAuth(login, password)


JWT와 OAuth의 차이

OAuth와 JWT 둘 다 token 방식을 사용하지만 OAuth의 토큰은 아무 의미 없는 문자열 형태이기 때문에 서버에서 토큰과 연관된 정보를 탐색하고 기능을 수행한다. 하지만 JWT는 토큰 자체가 의미를 갖는 claim 기반의 토큰 방식이다. 이 토큰을 HTTP header에 추가하여 사용자 인증 요청을 보낸다. 그러면 서버에서는 이 토큰을 확인하고 디코딩하여 사용자를 인증한다.



'동계현장실습' 카테고리의 다른 글

19.02.18 월요일  (0) 2019.02.19
19.02.14 목요일  (0) 2019.02.15
19.02.12 화요일  (0) 2019.02.13
19.02.11 월요일  (0) 2019.02.12
19.01.31 목요일  (0) 2019.01.31

+ Recent posts