i'm having issues trying send axios requests custom headers app can use them authentication on server.
i have react native app uses firebase authentication , node/express backend server.
when user signs in, grab firebase idtoken , store it.
i send idtoken header whenever make axios request server.
const { currentuser } = firebase.auth(); const url = ${serverurl}/api/users/${user.uid`; const idtoken = await currentuser.gettoken(true); var config = { headers: { idtoken }, }; const response = await axios(url, config);
in server code, there express middleware checks whether idtoken sent in request header valid or not. if is, call next() , proceed execute logic. if not, it'll fail , send 401 status.
this in app.js
:
const app = express(); app.use(bodyparser.json()); app.use(firebaseauthentication); router(app);
this firebaseauthentication
middleware:
const firebaseauthentication = async (req, res, next) => { console.log(req); try { const { idtoken } = req.headers; await admin.auth().verifyidtoken(idtoken); next(); } catch (e) { res.status(401).send({ error: 'unauthorized request. must signed in via firebase' }); } };
this router:
module.exports = app => { app.get('/api/users/:firebaseuid', usercontroller.getuser); }
the issue seems go through until tries send data user...but 404
, error: can't set headers after sent
this specific request failing:
async getuser(req, res, next) { const firebaseuid = req.params.firebaseuid; try { const user = await user.findone({ firebaseuid }); res.send(user); } catch (e) { next(e); } },
what happening here , how can fix it? thanks!
Comments
Post a Comment