Misalnya, ketika pengguna login. Sekarang katakanlah pengguna ingin membuat topik forum, Bagaimana saya tahu bahwa pengguna sudah masuk?
Pikirkan tentang hal itu - harus ada jabat tangan yang memberi tahu Anda tentang "Buat Forum" API bahwa permintaan saat ini dari pengguna yang diautentikasi. Karena REST API biasanya tidak memiliki kewarganegaraan, negara harus bertahan di suatu tempat . Klien Anda yang mengonsumsi API REST bertanggung jawab untuk mempertahankan status itu. Biasanya, itu dalam bentuk beberapa token yang akan diteruskan sejak saat pengguna login. Jika token itu baik, permintaan Anda baik.
Periksa bagaimana Amazon AWS melakukan otentikasi. Itu adalah contoh sempurna dari "meneruskan tanggung jawab" dari satu API ke API lainnya.
* Saya berpikir untuk menambahkan beberapa jawaban praktis untuk jawaban saya sebelumnya. Coba Apache Shiro (atau perpustakaan otentikasi / otorisasi). Intinya, coba dan hindari pengkodean khusus. Setelah Anda mengintegrasikan perpustakaan favorit Anda (saya menggunakan Apache Shiro, btw) Anda kemudian dapat melakukan hal berikut:
- Buat API Login / logout seperti:
/api/v1/login
danapi/v1/logout
- Di API Masuk dan Keluar ini, lakukan otentikasi dengan toko pengguna Anda
- Hasilnya adalah token (biasanya,
JSESSIONID
) yang dikirim kembali ke klien (web, seluler, apa pun)
- Dari titik ini dan seterusnya, semua panggilan selanjutnya yang dilakukan oleh klien Anda akan menyertakan token ini
- Katakanlah panggilan Anda berikutnya dilakukan ke API yang disebut
/api/v1/findUser
- Hal pertama yang akan dilakukan kode API ini adalah memeriksa token ("apakah pengguna ini diautentikasi?")
- Jika jawabannya kembali sebagai TIDAK, maka Anda melemparkan Status HTTP 401 kembali ke klien. Biarkan mereka menanganinya.
- Jika jawabannya YA, maka lanjutkan untuk mengembalikan Pengguna yang diminta
Itu saja. Semoga ini membantu.