2016-03-23 18 views
0

Bir API bağlamında, her bir istekte kullanıcının kimliğini doğrulamak için Authorization Header belirtecini kullanıyorsanız, aksi halde 'Kullanıcı Kimliği'ni kullanan RESTful yolları ayarlama hakkında nasıl davranırsınız? 'URL isteğinde?RESTful Yönlendirme - API'larda Üstbilgi Yetkilendirmesi

örnek:

POST /api/school/5/user

DELETE /api/school/5/user/???
,

Ancak Okulu'ndan Kullanıcı kaldırır Okula Kullanıcının ekler istekte Kullanıcı Kimliğini, gerektirecektir SİL isteği hangi eğer Bearer Authorization belirtecini kullanıyorsunuz, URL’de iletilmeyecek ve daha sonra Kaynakların bu türlerini zorlaştırıyor kurmak.

Bu genellikle nasıl kullanılır?

+0

Yetkilendirme başlığı kaynak kimliğiyle nasıl ilişkilidir? Bununla ne demek istiyorsun? – Kamil

+0

@Kamil Ancak, bir Kullanıcı bir kaynak modeli (veya alt kaynak) olabilir. Ancak, geçerli kullanıcı bir yetkilendirme simgesiyle alınıyorsa ve bu Kullanıcıyı içeren bir dinlenme yapmak istediğinizde, bu zor olacaktır çünkü kullanıcıyı URL aracılığıyla iletmiyorsunuz – djt

cevap

0

Bunun için bulunan en iyi çözüm:

1) URL yoluyla kullanıcı kimliğini iletmek ancak Yetkilendirme Token alınan Kullanıcının Kullanıcı Kimliği karşılaştırmak sadece edebilirsiniz. Yani böyle bir URL olabilir:

/api/school/5/user/7

Ve Middleware de, sizin Yetkilendirme Heaer söz konusu Kullanıcı, URL yoluyla geçirilen Kullanıcı uyup uymadığını kontrol. Bu şekilde RESTful yönlendirme sürdürürsünüz.

VEYA ) bazı URL yapısını Alter ve Me rota öneki var. Bu nedenle, giriş yapmış olan Kullanıcıya dayanan herhangi bir yol, Me (veya benzeri) ile öneklenmelidir. Spotify, Facebook ve diğer birçok şirketin API'leri bunu kullanıyor.

İlk çözümü tercih ediyorum çünkü ilk bakışta daha standart görünüyor olsa bile, URL'de bir kullanıcı kimliğini geçirme fikri gereksiz olarak daha az görünüyor.