# Zalo Taxi Backend v3 upgrade

Bản này kế thừa backend v2 và bổ sung bridge Server-to-Server đúng flow Zalo Mini App hiện tại cho dữ liệu được bảo vệ.

## Mới

- `POST /api/zalo/phone`
- `POST /api/zalo/location`
- `App\Services\ZaloProtectedInfoService`
- Kiểm tra access token Zalo phải thuộc đúng tài khoản backend đang đăng nhập.
- `ZALO_APP_SECRET` chỉ tồn tại trên server.

## .env

Thêm:

```env
ZALO_APP_SECRET=YOUR_ZALO_APP_SECRET
ZALO_PROTECTED_INFO_ENDPOINT=https://graph.zalo.me/v2.0/me/info
```

Lấy App Secret tại Zalo Developers của Zalo App đang liên kết với Mini App.

## Flow

Frontend gọi `getPhoneNumber()` hoặc `getLocation()` và nhận secure token. Frontend gửi secure token + Zalo access token tới backend. Backend gọi:

```text
GET https://graph.zalo.me/v2.0/me/info
headers:
  access_token: ...
  code: ...
  secret_key: ...
```

Backend trả dữ liệu đã chuẩn hóa về Mini App.

## Bảo mật

Không đưa `ZALO_APP_SECRET` vào frontend. Không log access token/secure token ở production. Secure token SĐT/vị trí là token ngắn hạn dùng một lần nên phải đổi ngay sau khi nhận.
