Saya membangun poker seperti server permainan, saya akan memiliki semua login dan logika permainan untuk ditangani di satu server, tetapi dari penelitian saya di web, saya belajar bahwa ini tidak akan skala, dan masuk akal untuk membagi pekerjaan menjadi server login dan game. Tapi yang tidak saya dapatkan adalah setelah saya menangani otentikasi di server login, dan meminta klien membuat koneksi baru ke server game, bagaimana saya tahu klien mana yang mana? Apakah saya tidak perlu masuk lagi dan dengan demikian mengalahkan tujuan memiliki server untuk masuk? Apakah ada cara untuk melewati koneksi di seluruh proses dan mesin yang saya tidak tahu? Maafkan sedikit pengetahuan saya tentang jaringan.
server
authentication
pengguna342580
sumber
sumber
Jawaban:
Meskipun jawaban Philipp sangat bagus, ada cara yang sedikit berbeda yang tidak memerlukan koneksi antara server login dan server game, yang berguna jika koneksi seperti itu sulit.
Ini berfungsi karena:
Atau lebih sederhananya, hash memastikan bahwa hampir tidak mungkin bagi pengirim untuk memalsukan token login mereka sehingga informasi dalam token dapat dipercaya.
Seperti halnya hashing yang berorientasi pada keamanan, gunakan fungsi hash terbaik yang bisa Anda dapatkan - saat ini orang-orang tampaknya menyukai bcrypt, PBKDF2, dan scrypt - dan memastikan kunci rahasia Anda sangat panjang sehingga membuat reproduksi brute force kurang praktis.
sumber
Setelah pengguna mengautentikasi sendiri ke server masuk, berikan token (string unik, yang dibuat secara acak, terlalu lama untuk ditebak).
Server login mengambil server game. Kirim token, nama pengguna, dan semua data relevan lainnya tentang pengguna dari server masuk ke server yang dipilih.
Kirim token dan nama host gim untuk klien. Kemudian putuskan sambungan dari server login.
Klien kemudian terhubung ke server permainan dengan nama pengguna dan tokennya.
Ketika token dari klien cocok dengan yang baru saja dilaporkan oleh loginserver, Anda menerimanya.
Perhatikan bahwa agar ini aman, token harus dibuat dari generator nomor acak yang aman secara kriptografis, masing-masing token hanya dapat diterima satu kali oleh server permainan dan token yang tidak digunakan harus dibuang setelah beberapa menit.
sumber