2017-02-01 8 views
5

Potrzebuję uwierzytelnić użytkownika Firebase za pomocą węzła, aby przetestować niektóre metody po stronie serwera. Dla każdego chronionego życzenie, ja zweryfikować Firebase żeton przy użyciu:Jak utworzyć token Firebase na serwerze do użytku z testami jednostkowymi?

firebase.auth().verifyIdToken(firebaseAccessToken).then(function(decodedToken) { 
    // forward request 
}) 

Więc w moim teście stworzyłem token z UID z mojej bazy danych Firebase

firebase.auth().createCustomToken(uid).then(function(token) { 
    //add to header for requests 
}) 

Później czytałem, że niestandardowe tokeny nie są weryfikowane metodą verifyIdToken, tylko te wygenerowane przez klienta.

szukałem w tej odpowiedzi - server side verification of tokens in firebase

więc dodałem databaseAuthVariableOverride do json Init

firebase.initializeApp({ 
    credential: firebase.credential.cert(serviceAccount), 
    databaseURL: [dbURL], 
    databaseAuthVariableOverride: { 
    uid: [uid] 
    } 
}); 

Wciąż otrzymuję wyjścia w moich testach

Error: expected 200 "OK", got 401 "Unauthorized" 

A Firebase błędach -

Error: Decoding Firebase ID token failed. Make sure you passed the entire string JWT which represents an ID token. See https://firebase.google.com/docs/auth/admin/verify-id-tokens for details on how to retrieve an ID token. 

Jak zatem emulować użytkownika przy mojej bieżącej konfiguracji?

+0

Może ten artykuł pomoże Ci: https://firebase.googleblog.com/2015/04/end-to-end-testing-with-firebase-server_16.html –

Odpowiedz

Powiązane problemy