Pengguna yang tidak diautentikasi
Kami melakukan PUT
permintaan pada api/v1/account/password
titik akhir dan memerlukan parameter dengan email akun yang sesuai untuk mengidentifikasi akun yang ingin disetel ulang (memperbarui) sandinya oleh pengguna:
PUT : /api/v1/account/password?email={email@example.com}
Catatan: Seperti yang disebutkan @DougDomeny dalam komentarnya, meneruskan email sebagai string kueri di url adalah risiko keamanan. Parameter GET tidak terekspos saat menggunakan https
(dan Anda harus selalu menggunakan https
koneksi yang tepat untuk permintaan semacam itu) tetapi ada risiko keamanan lain yang terlibat. Anda dapat membaca lebih lanjut tentang topik ini di posting blog ini di sini .
Meneruskan email di badan permintaan akan menjadi alternatif yang lebih aman daripada meneruskannya sebagai parameter GET:
PUT : /api/v1/account/password
Badan permintaan:
{
"email": "email@example.com"
}
Tanggapan tersebut memiliki arti tanggapan yang 202
diterima :
Permintaan telah diterima untuk diproses, tetapi pemrosesan belum selesai. Permintaan tersebut mungkin pada akhirnya atau mungkin tidak akan ditindaklanjuti, karena mungkin akan tidak diizinkan saat pemrosesan benar-benar terjadi. Tidak ada fasilitas untuk mengirim ulang kode status dari operasi asinkron seperti ini.
Pengguna akan menerima email di email@example.com
dan memproses permintaan pembaruan bergantung pada tindakan yang diambil dengan tautan dari email tersebut.
https://example.com/password-reset?token=1234567890
Membuka tautan dari email ini akan mengarahkan ke formulir setel ulang kata sandi pada aplikasi ujung depan yang menggunakan token setel ulang kata sandi dari tautan sebagai input untuk bidang input tersembunyi (token adalah bagian dari tautan sebagai string kueri). Bidang masukan lain memungkinkan pengguna menyetel kata sandi baru. Masukan kedua untuk mengonfirmasi kata sandi baru akan digunakan untuk validasi di front-end (untuk mencegah kesalahan ketik).
Catatan: Dalam email kami juga dapat menyebutkan bahwa jika pengguna tidak menginisialisasi pengaturan ulang kata sandi, dia dapat mengabaikan email dan tetap menggunakan aplikasi secara normal dengan kata sandinya saat ini
Ketika formulir dikirimkan dengan kata sandi baru dan token sebagai input proses reset kata sandi akan berlangsung. Data formulir akan dikirim dengan PUT
permintaan lagi tetapi kali ini termasuk token dan kami akan mengganti kata sandi sumber daya dengan nilai baru:
PUT : /api/v1/account/password
Badan permintaan:
{
"token":"1234567890",
"new":"password"
}
Tanggapan tersebut akan menjadi tanggapan 204
tanpa konten
Server telah memenuhi permintaan tetapi tidak perlu mengembalikan badan-entitas, dan mungkin ingin mengembalikan metainformation yang diperbarui. Respons MUNGKIN menyertakan metainformation baru atau yang diperbarui dalam bentuk header entitas, yang jika ada HARUS dikaitkan dengan varian yang diminta.
Pengguna terotentikasi
Untuk pengguna terotentikasi yang ingin mengubah kata sandi mereka, PUT
permintaan dapat segera dilakukan tanpa email (akun yang kami perbarui kata sandinya diketahui server). Dalam kasus seperti itu, formulir akan mengirimkan dua bidang:
PUT : /api/v1/account/password
Badan permintaan:
{
"old":"password",
"new":"password"
}