# #php #laravel #firebase #firebase-authentication
Вопрос:
В методе есть ошибка claims()
. Что я хочу сделать, так это получить uid от проверенного токена (я думаю ?). Таким образом, в результате, где бы я ни пытался войти в систему (правильный адрес электронной почты и пароль), он всегда будет выдавать ошибку «Неправильный пароль».
try {
$user = $auth->getUserByEmail($request->email);
try {
$signInResult = $auth->signInWithEmailAndPassword($request->email, $request->password);
$idTokenString = $signInResult->idToken();
try {
$verifiedIdToken = $auth->verifyIdToken($idTokenString);
$uid = $verifiedIdToken->claims()->get('sub');
$_SESSION['verified_user_id'] = $uid;
$_SESSION['idTokenString'] = $idTokenString;
$_SESSION['status'] = "Logged in successfully";
return redirect()->route('userHome');
} catch (InvalidToken $e) {
echo 'The token is invalid: ' . $e->getMessage();
} catch (InvalidArgumentException $e) {
echo 'The token could not be parsed: ' . $e->getMessage();
}
} catch (Exception $e) {
$_SESSION['status'] = "Wrong password";
return redirect()->route('login');
}
} catch (KreaitFirebaseExceptionAuthUserNotFound $e) {
// echo $e->getMessage();
$_SESSION['status'] = "Invalid Email Address";
return redirect()->route('login');
}
У кого-то здесь та же проблема, но он как бы путает, как они «используют» метод и почему они это делают.
Я пытаюсь прокомментировать код claims()
и добавить еще одну строку кода :
$uid = $signInResult->firebaseUserId();
и теперь он может успешно войти в систему, но повлияет ли это на дальнейшее развитие, если я не буду использовать $uid
from $verifiedIdToken
вместо firebaseUserid()
?
Комментарии:
1. метода не существует, вам придется создать его самостоятельно
2. но это здесь , и они находятся в одной упаковке ?
3. проверьте версию вашего пакета. переместите verifiedIdToken с попытки — возможно, токен не проверен и выдает исключение 401