2017-11-14 2 views
0

누군가가 로그인하면 내 사이트에 데이터를 표시하기 위해 Firebase ID 토큰을 사용합니다. 클라이언트 측의 쿠키에 토큰을 저장하고 클라이언트가 웹 사이트에 액세스하면 토큰을 사용합니다 쿠키 파일에서 가져 와서 백엔드 서버로 보냅니다.비밀번호 재설정시 토큰 변경

암호를 재설정 할 때 모든 ID 토큰을 제거하여 해당 사용자 이름과 암호를 사용하여 로그인 한 모든 클라이언트의 연결이 끊어 지도록하고 싶습니다.

이 옵션이 유효합니까? 그렇다면 어떻게 할 수 있습니까? 그들은 자신의 문서에서 언급하지 않는 것 같습니다.

+0

정말 쿠키에 ID 토큰을 저장해야합니까? 사용자가 Firebase에 로그인 한 후에는 firebase.auth.currentUser.getIdToken()을 사용하여 ID 토큰을 검색 할 수 있습니다. 또한 사용자가 사이트를 떠날 때 Firebase 인증 상태가 유지되는 방식을 관리 할 수 ​​있습니다 (https://firebase.google.com/docs/auth/web/auth-state-persistence 참조). 전체 유스 케이스를 설명하지는 않았지만 두 항목을 사용하면 쿠키를 사용하지 않고도 원하는 것을 얻을 수 있습니다. –

+0

다음은 현재 시스템의 작동 방식입니다. 로그인 입력을 위해 내 웹 사이트에서 GET 요청을 수신하는 firebase 기능이 있습니다. GET 요청을 사용하여 전자 메일과 암호를 얻은 후 백엔드에서 사용자를 로그인하고 내가 선택한 중요한 사항 만 사용자에게 보냅니다. 나는 클라이언트 측에서 firebase에 로그인하지 않는다. 로그인은 서버 측에서 발생하고 클라이언트에게 보낸다. 이것은 백엔드에 토큰을 보내고 그것을 확인하고 데이터를 보내려면 PHP를 사용할 수 있습니다. –

+0

조금 혼란 스럽네요. 사용자가 웹 클라이언트에 ID/암호를 입력하면 ID/암호가 PHP 백엔드로 전달되고 PHP 백엔드가 ID/암호를 Firebase 기능에 전송합니까? 실제 Firebase 인증은 PHP 코드 또는 Firebase 기능에서 어디에서 발생합니까? 아니면 내가 설정을 완전히 오해하니? –

답변

0

사용자 비밀번호가 재설정되거나 변경되거나 관련 이메일이 업데이트되면 보안상의 이유로 Firebase Auth가 해당 사용자의 모든 기존 세션을 무효화합니다. 이것은 Firebase Auth 백엔드의 관점에서 그 사용자의 토큰을 효과적으로 무효화합니다. 새로 고침 토큰은 새 ID 토큰을 발급 할 수도 없습니다.

나는 Scott에 동의합니다. ID 토큰을 직접 저장하는 대신 currentUser.getIdToken()을 사용해야합니다. ID 토큰이 만료되면 새로 고치는 API입니다.

+0

아마도 내가 의도를 충분히 설명하지 않았기 때문에 Scott에게 대답 한 내용을 살펴보십시오. –

+0

로그인하고 클라우드로 ID 토큰을 반환하는 클라우드 기능 엔드 포인트로 이메일/패스를 전달한다고 가정합니다. 이 경우에도 ID 토큰은 Auth 백엔드의 관점에서 무효화되지만 백엔드에 대해 비밀번호 재설정을위한 자체 핸들러를 추가하지 않으면 손쉽게이를 감지 할 수 없습니다. 무효화. 비밀번호 재설정을위한 방문 페이지를 만드는 방법에 대해 자세히 알아보십시오. https://firebase.google.com/docs/auth/custom-email-handler – bojeil

+0

ID 토큰의 수명이 짧고 잘 모르겠습니다. 내가 토큰을 삭제할 수 있다면. –