Firebase Authentication은 토큰 인증을 사용하는 이야기
Vue.js
에서 만든 SPA(Single Page Application)에 인증 기능을 폭속으로 구현한 적이 있었다. ( 소스 코드는 여기 ) ( 움직이는 앱은 여기 )Firebase가 제공하는 공식 자바스크립트용 SDK을 사용하여 1시간과 100행 이내의 구현으로 인증 기능을 만들 수 있었다.
이 기사에서는 Firebase SDK의 뒷면을 탐구하고 Firebase Authentication의 구조를 이해하고 구현한 소감을 설명한다.
Firebase Authentication의 토큰 인증 메커니즘
Firebase Authentication은 스테이트리스 토큰 인증을 채용하고 있다. 스테이트리스라는 것은 지금 어느 유저가 로그인중인지의 상태를 Firebase 백엔드측이 관리하고 있지 않는 것.
인증 성공 후 Firebase Authentication은 토큰을 발행하여 브라우저의 IndexedDB에 저장합니다.
IndexedDB에 대해서는 LocalStorage의 상위 버전이라고 이해하고 있다. LocalStorage에서는
Key=Value
페어와 같이 캐릭터 라인 밖에 보존할 수 없는 것에 대해, IndexedDB에서는 JSON 오브젝트등도 용이하게 취급할 수 있다.IndexedDB에 저장된 데이터를 실제로 보여주면
stsTokenManager
의 속성에 accessToken
와 refreshToken
가 있음을 알 수 있습니다. 여기 accessToken
는 내부 이름이고 공식 이름은 Firebase ID Token이라고합니다. ( h tps : // s t c ゔ ぇ rf ぉ w. 코 m/쿠에 s치온 s/50192454Firebase ID Token은 Firebase Authentication의 백엔드에 의해, 인증 프로바이더가 제공하는 유저명, 패스워드등의 인증 정보와 앞으로 발행한 것으로, 유효기간이 짧고, 디폴트에서는 1시간이 되고 있다. 만료되면 Refresh Token을 사용하여 새로운 ID Token을 발행할 수 있습니다.
ID Token은 JWT(JSON Web Token) 사양이다. htps : // jwt. 이오/에서 토큰을 디코딩하면,
페이로드에 Uid, 사용자 이름 및 인증 공급자 정보가 있음을 알 수 있습니다.
토큰 인증에 대한 인상
토큰 인증 상태 비저항의 특성은 Firebase의 서비스 또는 여러 백엔드 서비스 사이에 사용자 정보를 공유하는 데 매우 도움이 된다는 것을 깨달았습니다.
Firebase의 예를 들면 Firestore(Firebase에서 제공하는 NoSQL 데이터스토어)에 특정 데이터는 작성자인 본인만 읽을 수 있다는 규칙을 구현한 경우 읽기 요청의 발신자의 신분을 확인한다. 필요합니다.
Firebase Authentication에서 인증 기능을 구현한 경우, 읽기 요청의 헤더에 ID Token을 포함하는 것만으로, 데이터 스토어측은 토큰을 검증해, 송신 유저를 특정할 수 있다.
또, 상기와 같은 느낌으로, Firebase Admin SDK를 이용하여 자작 서버 등에서도 로그인 유저를 특정하는 것이 용이하게 실장할 수 있다. ( 자세한 내용은 공식 문서 )
참고
Reference
이 문제에 관하여(Firebase Authentication은 토큰 인증을 사용하는 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shiiyan/items/0b7471d3a8e523235a81텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)