[우분투 22.04] [구글 API] Fatal error: Uncaught Firebase\JWT\BeforeValidException: Cannot handle token prior to 2023-05-09T00:00:00+0000 in .../vendor/firebase/php-jwt/src/JWT.php:156 Stack trace: #0 오류 해결 방법
얼마 전부터 구글 로그인하는 곳에서 아래와 같은 오류가 나기 시작했다.
Fatal error: Uncaught Firebase\JWT\BeforeValidException: Cannot handle token prior to 2023-05-09T02:23:35+0000 in .../vendor/firebase/php-jwt/src/JWT.php:156 Stack trace: #0 .../vendor/google/apiclient/src/AccessToken/Verify.php(116): Firebase\JWT\JWT::decode() #1 .../vendor/google/apiclient/src/Client.php(813): Google\AccessToken\Verify->verifyIdToken() #2 .../처리파일.php(49): Google\Client->verifyIdToken() #3 {main} thrown in .../vendor/firebase/php-jwt/src/JWT.php on line 156
( * 위의 오류에서 경로는 수정했습니다. )
그런데 계속 새로 고침하다 보면 이상하게 로그인이 되는 것이다!;;;
그래서 어차피 정식 서비스 하는 곳은 아니라서 걍 몇 달 동안 써었는데 가면 갈 수록 점점 새로고침 2번 하면 되던 로그인이 10000번(그짓말;) 해야 로그인되는 것이다;
'혹시 서버 시간이 밀렸나?' 해서 확인해보니까 실제 인터넷 시간과 비교하니
서버 시간이 몇 초(40초 이상 느렸었음; 얼마나 밀린겨;)가 느린 것을 발견했다.
보니까 rdate를 설치 안한 것 대발견;
바로 설치를 위해 일단 apt-get 업데이트..
# apt update
...
# apt upgrade
* apt 명령어 안먹히면 걍 순순히 apt-get을 다 써주세요..
바로 rdate 설치 ㄱ
# apt install rdate
설치 후 잘 불러오는지 확인
# rdate -p time.bora.net
Tue May 9 12:58:33 KST 2023
잘 나온다.
현재 서버에 인터넷 시간 적용
# rdate -s time.bora.net
서버 부팅시에도 적용 되도록 아래 실행해 주면 시간 동기화 끝
# timedatectl set-ntp on
인터넷 시간으로 적용 후 구글 로그인 다시 해보니까 잘됨.