Kami mengembangkan aplikasi berbasis sosial untuk seluler. Setiap aplikasi mengkonsumsi layanan web API RESTful. Ketika saya menerapkan login saya biasanya menyimpan nama pengguna dan kata sandi di suatu tempat di perangkat. Lalu saya mengirim mereka dan sebagai tanggapan saya mendapatkan akses ke profil saya. Tapi saya juga tahu ada cara lain untuk melakukan ini.
Seseorang entah bagaimana menghasilkan token dengan algoritma tertentu, dan kemudian mengirimkannya alih-alih nama pengguna dan kata sandi untuk mendapatkan akses.
Bagaimana saya menerapkannya? Haruskah saya mengirim token ini bersama dengan setiap permintaan selain login?
Jawaban:
Ada beberapa cara bagaimana menerapkan otentikasi dalam konteks RESTful, dan lebih aman untuk mengirim token saja daripada login / kata sandi: Anda dapat dengan mudah membuat token menjadi tidak valid karena batas waktu atau dengan beberapa kriteria lain, dan meminta pengguna untuk mengautentikasi ulang .
Misalnya, permintaan otentikasi REST menggunakan HMAC . Dalam pendekatan ini, klien akan memiliki kunci publik dan rahasia . Untuk semua permintaan yang memerlukan otentikasi , Anda harus menambahkan kunci publik , dan menggunakan kunci rahasia untuk menghitung hash permintaan Anda
Sekarang server dapat mengidentifikasi permintaan dengan kunci publik dan menghitung requestHash itu sendiri. Jika kedua hash sama, maka pengguna diotorisasi.
Btw, Anda juga harus menggunakan https untuk mengamankan komunikasi melalui jaringan komputer - ini akan secara dramatis mengurangi jumlah kemungkinan masalah.
sumber
o Kebenaran adalah standar untuk ini tetapi ada lebih banyak solusi.
Jangan mencoba menerapkan keamanan, token, dll. Sendirian karena itu topik yang sulit dan berisiko. Ambil contoh lihat di sini:
/programming/4574868/securing-my-rest-api-with-oauth-while-still-allowing-authentication-via-third-pa
sumber