Otentikasi aplikasi seluler asli menggunakan REST API

16

Saya akan segera memulai proyek baru, yang menargetkan aplikasi seluler untuk semua platform seluler utama (iOS, Android, Windows). Ini akan menjadi arsitektur client-server.

Aplikasi ini bersifat informasi dan transaksional. Untuk bagian transaksional, mereka diharuskan memiliki akun dan masuk sebelum transaksi dapat dilakukan. Saya baru dalam pengembangan seluler, jadi saya tidak tahu bagaimana bagian otentikasi dilakukan pada platform ini. Klien akan berkomunikasi dengan server melalui REST API. Akan menggunakan HTTPS ofcourse.

Saya belum memutuskan apakah saya ingin pengguna untuk masuk ketika mereka membuka aplikasi, atau hanya ketika mereka melakukan transaksi.

Saya mendapat pertanyaan berikut:

1) Seperti aplikasi Facebook, Anda hanya memasukkan kredensial saat Anda membuka aplikasi untuk pertama kalinya. Setelah itu, Anda secara otomatis masuk setiap kali Anda membuka aplikasi. Bagaimana seseorang mencapai ini? Hanya dengan mengenkripsi dan menyimpan kredensial pada perangkat dan mengirimkannya setiap kali aplikasi dimulai?

2) Apakah saya perlu mengautentikasi pengguna untuk setiap permintaan (transaksional) yang diajukan ke REST API atau menggunakan pendekatan berbasis token?

Silakan menyarankan cara lain untuk otentikasi.

Terima kasih!

Supercell
sumber

Jawaban:

14

Anda memberikan nama pengguna / kata sandi ke metode login API RESTful Anda dan mengembalikan token akses. Token akses itu hanya beberapa string unik (untuk sistem).

Perangkat menyimpan (tetap) bahwa token akses. Setiap kali Anda mengirim permintaan tenang ke server Anda menempatkan token akses itu di header permintaan HTTP. Server menemukan pengguna dengan token akses dan jika berhasil memenuhi permintaan.

nama pengguna / kata sandi tidak boleh disimpan di perangkat.

c-senyum
sumber
Apakah mungkin bagi pihak ketiga (peretas, dll) untuk mendapatkan token akses?
Supercell
Itu tentu saja mungkin. Apalagi jika Anda tidak menggunakan HTTPS. Sebagian besar klien email online meminta Anda untuk login kembali dari waktu ke waktu. Token memiliki waktu kedaluwarsa yang diatur ke dua minggu misalnya. Jadi sekali per dua minggu Anda harus login kembali.
c-smile
Bagaimana token akses akan dihasilkan, dan token akses akan disimpan di server.
Ghyath Serhal
@ c-smile Facebook tidak pernah meminta saya untuk masuk kembali. Karena itu, saya tidak benar-benar melihat perbedaan antara kata sandi dan token akses.
Mickael Marrache
saya tahu ini sudah terlambat. tetapi facebook dan penyedia lainnya mengeluarkan token penyegaran, token akses dan waktu kedaluwarsa (untuk token akses) pada saat login. token akses berumur pendek dan token akses baru dapat dihasilkan menggunakan token refresh. Login selanjutnya dapat membuat token penyegaran baru, membuat yang lama tidak valid
Cerlin