В настоящее время я использую функции Firebase v1.0.3
и Firebase Admin v5.12.1
.Кажется, он работает нормально с библиотекой express
NodeJS.
Проблема
Однако, когда я попытался защитить запрос, отправив заголовок авторизации:
Authorization: Bearer <token>
На нем не было логов моих токенов.Я не мог видеть слов, которые соответствуют Bearer
или Authorization Bearer
(что бы то ни было), когда я использовал console.log(request)
в моем файле Firebase Functions index.js
, чтобы получить token
.
Все, что я получил, былоследующее из req.headers
при использовании console.log
:
{ 'content-length': '0',
'accept-language': 'en-US,en;q=0.9',
'accept-encoding': 'gzip, deflate, br',
referer: 'http://localhost:5000/admin/',
accept: '*/*',
'access-control-request-headers': 'authorization,content-type',
'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36',
origin: 'http://localhost:5000',
'access-control-request-method': 'GET',
connection: 'close',
host: 'localhost:5001'
}
Источники документации
Я прочитал документацию о Образцы функций Firebase:Авторизованные HTTPS Endpoint примеры кодов, и некоторые из них кажутся устаревшими.
firebase.auth().currentUser.getToken()
Например, сейчас:
firebase.auth().currentUser.getIdToken()
Другие библиотеки
Я пытался установить библиотеки, такие как express-authorization-bearer
и express-bearer-token
, и я все еще не мог поймать idToken
.
Мне интересно, это проблема NodeJS или FirebaseФункции выпуска.В настоящее время я использую NodeJS v6.11.4
Вопрос
Как мне перехватить токен внутри функций Firebase, используя Express или любой другой метод, использующий NodeJS?