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?
Może ten artykuł pomoże Ci: https://firebase.googleblog.com/2015/04/end-to-end-testing-with-firebase-server_16.html –