Токен идентификатора не содержит идентификатор арендатораJavascript

Форум по Javascript
Ответить
Anonymous
 Токен идентификатора не содержит идентификатор арендатора

Сообщение Anonymous »

У меня есть эта ошибка в приложении, которое использует Firebase, в которой я пытаюсь войти в систему. Пользователи теперь готовы < /p>
Я поместил код фронта с JS и из назад с Laravel < /p>
js: < /p>

Код: Выделить всё

signinUserInFirebase: function () {
var _signinUserInFirebase = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee3(context, payload) {
var email, password;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
email = payload.email, password = payload.password;
context.commit('loginUser');
console.log(payload);
_context3.next = 5;
return firebase_app__WEBPACK_IMPORTED_MODULE_1__["default"].auth().signInWithEmailAndPassword(email, password).then(function (response) {
nprogress__WEBPACK_IMPORTED_MODULE_2___default.a.done();
firebase_app__WEBPACK_IMPORTED_MODULE_1__["default"].auth().currentUser.getIdToken(
/* forceRefresh */
true).then(function (idToken) {
var tok = {
Firebasetoken: idToken
};
console.log(idToken);
WebServices__WEBPACK_IMPORTED_MODULE_3__["default"].post('/auth/firebaselogin', tok, axiosOptions).then(
/*#__PURE__*/
function () {
var _ref = _asyncToGenerator(
/*#__PURE__*/
_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.mark(function _callee2(r) {
var createUser, update;
return _babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default.a.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
// await this.updatePhotoProfile(response);
createUser = window.db;
update = createUser.collection('Users').doc(response.user.uid); // Set the "capital" field of the city 'DC'

console.log('updateando foto');

if (!(response.user.photoURL != r.data.user.photo)) {
_context2.next = 7;
break;
}

if (!(response.user.photoURL != r.data.user.photoUrl)) {
_context2.next = 7;
break;
}

_context2.next = 7;
return update.update({
photo: response.user.photoURL,
photoUrl: response.user.photoURL
}).then(function () {
console.log("Document successfully updated!");
})["catch"](function (error) {
// The document probably doesn't exist.
console.error("Error updating document: ", error);
});

case 7:
r.data.user.photo = response.user.photoURL;
r.data.user.photoUrl = response.user.photoURL;
localStorage.setItem('roles', JSON.stringify([r.data.user.role]));
localStorage.setItem('userInfo', JSON.stringify(r.data.user));
context.commit('loginUserSuccess', response);

case 12:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));

return function (_x5) {
return _ref.apply(this, arguments);
};
}())["catch"](function (error) {
console.log(tok);
nprogress__WEBPACK_IMPORTED_MODULE_2___default.a.done();
context.commit('loginUserFailure', error.response.data);  // console.log('signInWithLaravelPassport ERROR', error.response);

reject(error.response);
});
})["catch"](function (error) {
console.log(error);
});
})["catch"](function (error) {
context.commit('loginUserFailure', error);
});

case 5:
return _context3.abrupt("return", _context3.sent);

case 6:
case "end":
return _context3.stop();
}
}
}, _callee3);
}));
< /code>
Честно говоря, сложность кода немного ест меня, но я понимаю, что запрос сделан здесь, отправив токен: < /p>
 var tok = {
Firebasetoken: idToken
};
console.log(idToken);
WebServices__WEBPACK_IMPORTED_MODULE_3__["default"].post('/auth/firebaselogin', tok, axiosOptions).then(
И есть токен, который отправляется, который поступает оттуда без идентификатора арендатора.
контроллер в Laravel:
public function firebaselogin(Request $request)
{
// Launch Firebase Auth
$auth = app('firebase.auth');

$idTokenString = $request->input('Firebasetoken');

try { // Try to verify the Firebase credential token with Google

$verifiedIdToken = $auth->verifyIdToken($idTokenString);

} catch (\InvalidArgumentException $e) { // If the token has the wrong format

Log::info($e->getMessage());

return response()->json([
'message' => 'Unauthorized - Can\'t parse the token: ' . $e->getMessage()
], 401);

} catch (InvalidToken $e) { // If the token is invalid (expired ...)

return response()->json([
'message' => 'Unauthorized - Token is invalide: ' . $e->getMessage()
], 401);

}

// Retrieve the UID (User ID) from the verified Firebase credential's token
$uid = $verifiedIdToken->getClaim('sub');

// Retrieve the user model linked with the Firebase UID
// $user = User::where('firebaseUID',$uid)->first();
// $user = $this->database->collection('Users')->where('uid', '==' ,$uid)->limit(1)->documents();

$array = [];
$doc = $this->database->collection('Users')->document($uid);
$snapshot = $doc->snapshot();
if (!$snapshot->exists()) {
return response()->json(['status' => 'Not Found', 'color' => 'warning', 'message' => 'la cita que desea editar no ha sido encontrado..']);
}else{
$d = $snapshot->data();
$array = $d;
}

// foreach ($user as $document) {
// if ($document->exists()) {
// $d = $document->data();
// $array = $d;
// } else {
// }
// }
// Return a JSON object containing the token datas
// You may format this object to suit your needs
return response()->json([
'uid' => $uid,
'user' => $array,
'access_token' => $idTokenString,
]);
}

< /code>
Ошибка возникает здесь: < /p>
catch (\InvalidArgumentException $e) { // If the token has the wrong format

Log::info($e->getMessage());

return response()->json([
'message' => 'Unauthorized - Can\'t parse the token: ' . $e->getMessage()
], 401);

}
< /code>
Что может произойти, если Idtokent будет поступить без идентификатора арендатора с фронта, я бы подумал, что проблема заключается в конфигурации Firebase. Но я не знаю.
Как поместить идентификатор арендатора в токен?

Подробнее здесь: https://stackoverflow.com/questions/793 ... identifier
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»