代币在未来发行 - Laravel Firebase

问题描述 投票:0回答:1

我使用react.js作为前端和laravel来为网络应用程序创建API

在react.js中,我使用firebase来获取

googleAuth
,然后将其发送到Laravel应用程序 在 Laravel 中我使用
"kreait/laravel-firebase": "^5.7",

SocialRegister
在 Laravel 方面对我来说工作得很好

当我尝试使用下面的代码登录用户时

  try {
        /** @var FirebaseAuth $firebaseAuth */
        $firebaseAuth = app(FirebaseAuth::class);

        // Verify the ID token
        $verifiedIdToken = $firebaseAuth->verifyIdToken($request->access_token);

        // Extract claims from the verified ID token
        $uid = $verifiedIdToken->claims()->get('sub');
        $userEmail = $verifiedIdToken->claims()->get('email');

        // Check if the user already exists in your database
        $existingUser = AppUser::where('email', $userEmail)->first();

        if ($existingUser) {
            // User already exists, return an error or handle it as per your requirements
            return $this->sendresponse('false', 'user already exists', null);
        }


        $user = AppUser::create([
            "email" => $request->email,
            "name" => $request->name,
            "access_token" => $uid, // Save Firebase UID for future reference
        ]);


        // Return success response
        return $this->sendresponse('true', 'user registered successfully', ['user' => $user]);
    } catch (\Throwable $e) {
        // Handle registration errors
        return $this->sendresponse('false', 'registration error', $e->getMessage());
    }

`

然后我收到此错误

值“eyJhbGciOiJSUzI...”不是经过验证的 ID 令牌: - - 该令牌是在未来发行的

我什至尝试更改我的 laravel 应用程序的

timezone
,但没有成功

php laravel firebase firebase-authentication
1个回答
0
投票

当签名服务器 (Firebase) 和验证服务器(您的服务器或本地计算机)之间存在时钟偏差时,就会出现此问题。

在这种情况下,您可以在几秒钟内提供余地以允许令牌过期:

$leewayInSeconds = 360; // 5 minutes

$verifiedIdToken = $firebaseAuth
    ->verifyIdToken($request->access_token, $leewayInSeconds);
© www.soinside.com 2019 - 2024. All rights reserved.