无效令牌- firebase



我遇到了一个问题,当我想在Vercel上部署我的web应用程序。我正在开发一个具有登录功能的应用程序。在本地环境中,一切都很好,登录/注销功能运行良好,但当我部署到Vercel时,它显示错误

The token is invalid: file_put_contents(/var/task/user/storage/framework/cache/data/24/fc/24fc69d48eaa682f929a7045e8f4700237c0083e): failed to open stream: No such file or directory

我还必须将web应用程序添加到授权域。

下面是验证令牌的代码:
try {
$signInResult = $auth->signInWithEmailAndPassword($request->email, $request->password);
$idTokenString = $signInResult->idToken();
try {
/** @var LcobucciJWTTokenPlain $verifiedIdToken */
$verifiedIdToken = $auth->verifyIdToken($idTokenString);
$uid = $verifiedIdToken->claims()->get('sub');
$_SESSION['displayName'] = $signInResult->data()["displayName"];
$_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();
}

当资源试图保存或读取的文件夹不存在时,通常会发生这种错误。确保你在保存凭据之前创建了该位置的文件夹路径结构,如果文件夹不存在,你应该在应用程序中处理它,因为文件流是一个潜在的故障点。

尝试创建会话cookie给定从客户机应用程序发送到服务器应用程序的ID令牌,您可以将其转换为会话cookie:

use KreaitFirebaseAuthCreateSessionCookieFailedToCreateSessionCookie;
$idToken = '...';
// The TTL must be between 5 minutes and 2 weeks and can be provided as
// an integer value in seconds or a DateInterval
$fiveMinutes = 300;
$oneWeek = new DateInterval('P7D');
try {
$sessionCookieString = $auth->createSessionCookie($idToken, $oneWeek);
} catch (FailedToCreateSessionCookie $e) {
echo $e->getMessage();
}

使用COOKIES维护您的用户认证流

验证Firebase会话Cookie

Use Auth::verifySessionCookie() to verify a Session Cookie:
use KreaitFirebaseExceptionAuthFailedToVerifySessionCookie;
$sessionCookieString = '...';
try {
$verifiedSessionCookie = $auth->verifySessionCookie($sessionCookieString);
} catch (FailedToVerifySessionCookie $e) {
echo 'The Session Cookie is invalid: '.$e->getMessage();
}
$uid = $verifiedSessionCookie->claims()->get('sub');
$user = $auth->getUser($uid);

最新更新