2016-06-23 3 views
1

인증 및 데이터 저장을위한 백엔드로 laravel 및 firebase에서 작업 중입니다. 내가 중포 기지는 사용자firebase 인증을 사용하기 위해 laravel 미들웨어를 수정하는 방법

firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    // ... 
}); 

문제를 로그인 절차에 JS 코드를 제공 사용하고하는 것은 내가 인증되지 않은 사용자로부터 내 경로를 보호 할 것입니다. js가 현재 사용자의 uid를 localStorage에 저장하기 때문에 사용자가 로그인했는지 여부를 미들웨어에서 어떻게 확인할 수 있습니까? 이 목적으로 별도의 데이터베이스를 사용해야합니까? 올바른 방향으로 가도록 도와주세요.

auth.currentUser.getIdToken().then(function(token) { 
    // The Firebase id token is returned here. 
    // You will have to send that along your requests to your server. 
    // Keep in mind this is a short lived token 
    // You have to call getToken each time you need it in case 
    // it is auto refreshed underneath. 
}); 

는 현재, 중포 기지는 Node.js를 제공하고 자바 백엔드 라이브러리 (사용자가 로그인되어 있는지 확인하기 위해) 토큰을 확인

:

답변

3

당신은 전화를해야합니다. https://firebase.google.com/docs/auth/server

PHP 라이브러리가 작동 중입니다. 준비가되면 사용자 정의 토큰 생성 및 Firebase ID 토큰 확인과 유사한 기능을 제공해야합니다.

+0

를 통해 인증이 https://github.com/vinkas0/firebase-auth-laravel laravel 패키지를 사용할 수 있습니다. localStorage에서 사용자 정보를 가져 와서 쿠키에 저장 한 다음 내 미들웨어에서 쿠키를 읽는 것이 안전한 방법입니까? –

+1

미들웨어에서 쿠키를 읽는 경우에도 여전히 토큰의 유효성을 검사해야합니다. 이제 위에서 얻은 Firebase Id 토큰 만 쿠키에 저장하는 것이 좋습니다. 가까운 장래에 PHP 라이브러리를 사용할 준비가되었을 때이를 확인할 수 있습니다. localStorage에는 중요한 계정 변경이 발생하지 않고 만료되지 않으므로 유출 위험에 노출되기를 원하지 않는 새로 고침 토큰과 같은 중요한 데이터가 백엔드에 보내지지 않아야합니다. 사이트가 https를 통해 암호화되었는지 확인하고 쿠키에 보안 플래그를 설정하십시오. – bojeil

+1

또한 id 토큰은 매시간 만료되므로 새로 고칠 때마다 쿠키 값을 업데이트해야한다는 점에 유의하십시오. firebase 팀은 PHP 라이브러리를 단기간에 작업 할뿐만 아니라 세션 관리를위한 더 나은 솔루션을 제공하므로 귀사의 사례에 도움이됩니다. – bojeil

0

당신은 단순히 내가 사용자가 로그인 또는 내 응용 프로그램 경로를 보호하지 않을 경우 내 미들웨어에서 확인 할 중포 기지

관련 문제