Я пытался проверить ID токены с помощью Firebase Admin SDK. Я хочу отправить токен на сторону сервера со стороны клиента. Но кажется, что он размещен неправильно.
Сначала войдите в систему на стороне клиента и получите токен. И установите значение токена на входном теге (id:postToken).
client.js
firebase.auth().signInWithEmailAndPassword(email, password).then(user => {
firebase.auth().onAuthStateChanged( (user) => {
user.getIdToken().then(function(data) {
var token = data;
document.getElementById('postToken').value = token;↲
}).catch((error)=>{
// Handle Errors here.
});
});
}).catch(function(error) {
// Handle Errors here.
});
login.pug
form(name="sendToken" action="/login" method="post")
span email
input(id="email" type="email" name="email")
span password
input(id="password" type="password" name="password" required)
input(type="hidden" name="token" id="postToken")
input(type="button" onclick="toggleSignIn();" value="login")
Во-вторых, я хочу отправить токен на сервер, нажав кнопку отправки.
router.post('/', function(req, res, next) {
var email = req.body.email;
var password = req.body.password;
var token = req.body.token;
console.log(token)
res.cookie('idToken', token, {maxAge: 60 * 60 * 24 * 1000})
res.redirect('/mypage');
});
В этот момент я обнаружил, что токен не был отправлен на сервер.
Кажется, токен установлен в значении входного тега на стороне клиента, но, похоже,что он плохо размещен.
Как я могу отправить токен на сервер? Я подозреваю, что существует проблема с синхронизацией нажатия кнопки и синхронизацией функции.