502 Ошибка с лямбда-функцией Netlify после перехода с localhost - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть лямбда-функция, которая передает id_token, авторизованный Auth0, в функцию, которая проверяет JWT, а затем возвращает только что созданный токен из firebase.

Вот функция Lambda:

const express = require('express');
const serverless = require('serverless-http');
const cors = require('cors');
const jwt = require('express-jwt');
const jwks = require('jwks-rsa');
const firebaseAdmin = require('firebase-admin');

const app = express();
app.use(cors());

const jwtCheck = jwt({
  secret: jwks.expressJwtSecret({
    cache: true,
    rateLimit: true,
    jwksRequestsPerMinute: 5,
    jwksUri: 'https://skillthrive.auth0.com/.well-known/jwks.json'
  }),
  audience: '3U-nSf4D_ofItgNsObXGdFY92aFqBYih',
  issuer: 'https://skillthrive.auth0.com/',
  algorithm: 'RS256'
});

const serviceAccount = require('../firebase/firebase-keys.json');

firebaseAdmin.initializeApp({
  credential: firebaseAdmin.credential.cert(serviceAccount),
  databaseURL: `https://${serviceAccount.project_id}.firebaseio.com`
});

  // GET object containing Firebase custom token
  app.get('/firebase', jwtCheck, async (req, res) => {
    const {sub: uid} = req.user;

    try {
      const firebaseToken = await firebaseAdmin.auth().createCustomToken(uid);
      res.json({firebaseToken});
    } catch (err) {
      res.status(500).send({
        message: 'Something went wrong acquiring a Firebase token.',
        error: err
      });
    }
  });

module.exports.handler = serverless(app);

На стороне клиента у меня есть запрос в следующем методе:

doSignInWithCustomToken() {
    if (typeof window !== 'undefined') {
      fetch('/.netlify/functions/firebase', {
        headers: {
          'Authorization': `Bearer ${window.localStorage.getItem('id_token')}`,
        },
      }).then(response => console.log(response))
      /*.then(response => response.json())
      .then(data => this.auth.signInWithCustomToken(data.firebaseToken))*/
      .catch(error => console.log(error));
    }
  }

На локальном хосте я получаю обратно 200 ответов и затем могу передать ответ на signInWithCustomToken () (функция, предоставляемая firebase).

Однако, как только я нажимаю на Netlify и тестирую, я получаю ошибку 502 и error decoding lambda response: json: cannot unmarshal number into Go value of type string в моих журналах функций Netlify.

Кто-нибудь знает, что может быть не так?

...