Saya ingin tahu apakah dapat diterima untuk meletakkan data khusus di header otorisasi HTTP. Kami sedang merancang RESTful API dan kami mungkin memerlukan cara untuk menentukan metode otorisasi khusus. Sebagai contoh, sebut saja FIRE-TOKEN
otentikasi.
Apakah hal seperti ini valid dan diizinkan sesuai dengan spesifikasi: Authorization: FIRE-TOKEN 0PN5J17HBGZHT7JJ3X82:frJIUN8DYpKDtOLCwo//yllqDzg=
Bagian pertama dari string kedua (sebelum ':') adalah kunci API, bagian kedua adalah hash string kueri.
sumber
Taruh di header khusus yang terpisah.
Membebani header HTTP standar mungkin akan menyebabkan lebih banyak kebingungan daripada nilainya, dan akan melanggar prinsip yang paling tidak mengejutkan . Ini juga dapat menyebabkan masalah interoperabilitas untuk pemrogram klien API Anda yang ingin menggunakan tool kit off-the-shelf yang hanya dapat menangani bentuk standar dari header HTTP biasa (seperti
Authorization
).sumber
Authorization
Header standar spesifikasi dengan skema kustom Anda sendiri sudah lebih dari cukup. Selain itu, Anda menghindari permintaan Origin sebelum penerbangan seperti yang diindikasikan oleh @wilmoore. Skema khusus tidak mengganggu server HTTP yang cukup modern yang saya ketahui, ditambah lagi jika Anda menggunakan skema Anda sendiri, Anda harus menguraikannya sendiri - tidak ada pustaka yang konflik (jika tidak pustaka ditulis dengan buruk).Authorization
tajuk, bukan di tajuk khusus, adalah karena proksi dan pencatat tahu memperlakukan informasi sebagai informasi yang sensitif.Tidak, itu bukan produksi yang valid menurut definisi "kredensial" di RFC 2617 . Anda memberikan skema autentikasi yang valid, tetapi nilai parameter-auth harus dalam format
token "=" ( token | quoted-string )
(lihat bagian 1.2), dan contoh Anda tidak menggunakan "=" seperti itu.sumber
Pertanyaan lama yang saya tahu, tetapi bagi yang penasaran:
Percaya atau tidak, masalah ini telah diselesaikan ~ 2 dekade yang lalu dengan HTTP BASIC, yang meneruskan nilai sebagai nama pengguna yang dikodekan base64: sandi. (Lihat http://en.wikipedia.org/wiki/Basic_access_authentication#Client_side )
Anda bisa melakukan hal yang sama, sehingga contoh di atas menjadi:
sumber