简体   繁体   中英

Can we access request header on Firebase Auth triggers i.e onCreate?

How can one access the IP and country in firebase auth onCreate trigger? Is there any other way to get this info?

For the front end, I'm using firebase-ui and for user register using the following method.

app.auth().createUserWithEmailAndPassword(email,password)

Cloud Functions code:

exports.processSignUp = functions.auth.user().onCreate(async user => {
  return admin.auth().setCustomUserClaims(user.uid, { 
     clientIp: 'xxx.xxx.xx.xx', // required here headers['x-forwarded-for'] 
     country: 'countryName'  // required here headers['x-appengine-country']
  })
  .then(() => {
    
  })
  .catch(error => {
    console.log(error);
  });
});

The Cloud Function is triggered by the Google/Firebase infrastructure, and thus the headers are the values from that infrastructure. No information about the user/device that called createUserWithEmailAndPassword is available beyond what is passed in the user object.

If you need more information, consider implementing a callable function that you call directly from your code passing both the credentials (that you now pass to createUserWithEmailAndPassword ) and the additional information you need, and then creating the user in the Cloud Functions code itself.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM