Web App

Lỗi các API gọi auth() đều trả 500

Bởi Demandium 60 Lượt xem Aug 24, 2026
Lỗi các API gọi auth() đều trả 500

Laravel Passport không đọc được khóa mã hóa OAuth:


Vì vậy các API gọi auth() đều trả 500, gồm:

Log đã xác định chính xác nguyên nhân:

`Laravel Passport` không đọc được khóa mã hóa OAuth:

```text
LogicException: Invalid key supplied
vendor/league/oauth2-server/src/CryptKey.php:67
```

Vì vậy các API gọi `auth()` đều trả `500`, gồm:

- Category
- Service
- Cart
- Provider
- Advertisement
- Các API yêu cầu xác thực khác

Đây là lỗi phía server `tidy.vn`, không phải Flutter. Khả năng cao một trong các nguyên nhân:

- `PASSPORT_PRIVATE_KEY` hoặc `PASSPORT_PUBLIC_KEY` trong `.env` bị thiếu/sai định dạng PEM.
- Khóa bị xuống dòng sai hoặc bị đặt trong dấu nháy không đúng.
- File `storage/oauth-private.key` hoặc `storage/oauth-public.key` bị mất.
- Quyền đọc file không đúng.
- Laravel đang dùng config cache cũ sau khi thay đổi `.env`.

Thực hiện trên server:

```bash
cd /var/www/tidy.vn/public_html

php artisan passport:keys --force
php artisan optimize:clear
php artisan config:cache
```

Sau đó kiểm tra quyền:

```bash
chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache
```

Nếu đang dùng key trong `.env`, phải bảo đảm key là PEM hợp lệ, bắt đầu bằng:

```text
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
```

và public key:

```text
-----BEGIN PUBLIC KEY-----
...
-----END PUBLIC KEY-----
```

Lưu ý: `passport:keys --force` có thể làm token hiện tại không còn hợp lệ, người dùng sẽ phải đăng nhập lại. Sau khi sửa, restart PHP-FPM/opcache rồi gọi lại các endpoint category/service.

Chia sẻ ngay

Download the User App

Book and manage your services anytime, anywhere.

Quét để tải xuống

Chia sẻ bài viết này

GET ALL UPDATES & EXCITING NEWS

Subscribe to out newsletters to receive all the latest activity we provide for you