# Setup Steam Authentication

Steam login sudah terintegrasi di aplikasi ini. Ikuti langkah berikut untuk mengaktifkannya:

## 1. Dapatkan Steam API Key

1. Buka: https://steamcommunity.com/dev/apikey
2. Login dengan akun Steam kamu
3. Isi **Domain Name** dengan domain kamu (contoh: `pesleague.gg` atau `localhost` untuk development)
4. Setujui **Terms of Use**
5. Copy **API Key** yang diberikan

## 2. Update File `.env`

Buka file `.env` di root project dan update:

```env
STEAM_API_KEY=ABCDEF1234567890  # API key dari langkah 1
STEAM_REDIRECT_URI=${APP_URL}/auth/steam/callback
```

Untuk development lokal:
```env
STEAM_REDIRECT_URI=http://localhost/auth/steam/callback
```

Untuk production:
```env
STEAM_REDIRECT_URI=https://pesleague.gg/auth/steam/callback
```

## 3. Restart Server (jika pakai queue/cache)

```bash
php artisan config:clear
php artisan cache:clear
```

## 4. Test Login

1. Buka halaman login: `/login`
2. Klik tombol **"Masuk dengan Steam"**
3. Akan redirect ke Steam OpenID
4. Login dengan akun Steam kamu
5. Setelah berhasil, akan redirect kembali ke aplikasi

## Skenario Login Steam

### A. User Sudah Login (Link Account)
Jika sudah login dengan Discord, klik tombol Steam akan **menghubungkan** akun Steam ke akun yang sedang aktif.

### B. User Belum Login, Steam ID Sudah Ada
Jika pernah login dengan Steam sebelumnya, akan langsung login tanpa buat akun baru.

### C. User Belum Login, Steam ID Belum Ada
Akan otomatis membuat akun baru dengan data dari Steam (nickname, avatar, steam_id).

## Unlink Account

User bisa melepas koneksi Steam dari halaman profil (`/profile`), asalkan masih punya Discord terhubung.

## Troubleshooting

### Error: "Steam login gagal"
- Pastikan `STEAM_API_KEY` sudah diisi di `.env`
- Cek `STEAM_REDIRECT_URI` sesuai dengan domain yang didaftarkan di Steam API key
- Pastikan SSL aktif (Steam mengharuskan HTTPS untuk production)

### Tidak ada tombol Steam di halaman utama
Tombol Steam ada di:
- `/login` — halaman login khusus
- `/` (home page) — hero section

### Akun Steam sudah terhubung ke akun lain
Satu Steam ID hanya bisa dihubungkan ke satu akun. Jika ingin pindah, lepas koneksi dari akun lama terlebih dahulu.

---

**Note:** Steam OpenID tidak memerlukan `client_secret` — hanya butuh `STEAM_API_KEY` dan `STEAM_REDIRECT_URI`.
