2013-05-13 23 views
29

REST API'mdaki her çağrıda, kullanıcının kimliği doğrulayan ve kullanıcının kimliğini doğrulayan kullanıcının facebook erişim kodunu geçmesini istiyorum. Bu belirteci geçmek için en iyi uygulama hangisidir? HTTP soru işareti isteğinin başlığındakiİstemci sunucuya nasıl bir facebook erişim belirteci iletmelidir?

GET /api/users/123/profile?access_token=pq8pgHWX95bLZCML 
  • veya her nasılsa, arkasında bir parametre benzer temel kimlik belki

  • üçüncü bir seçenek HTTP belki olarak

    1. ? (Ben komik yanı GET çağrılarda geçmiş olsun istiyorum çünkü JSON orada uygun olmaz bu yüzden sanırım, bir JSON bunu geçirerek hariç tuttuktan)

  • cevap

    37

    tüm popüler sağladığı API uç noktaları bakarsak OAuth sağlayıcıları (Google, Facebook, Cep, Git vb.), Hepsinin HTTPS uç noktalarına sahip olduğunu göreceksiniz. istekte

    https://yourwebsite.com/api/endpoint?access_token=YOUR_ACCESS_TOKEN

    ii) -

    sağlayıcıya bir erişim belirteci geçebileceği yolları

    olan -

    i) zamanda Sorgu Parametresi başlık -

    GET /api/users/123/profile HTTP/1.1 
    Host: yourwebsite.com 
    Date: Tue, 14 May 2013 12:00:00 GMT 
    Authorization: <YOUR_ACCESS_TOKEN> 
    

    Bu ikisi genellikle çoğu API tarafından desteklenen yaklaşımlardır. Aynı şeyi yapmayı düşünebilirsiniz.

    iii) Cep API hiç GET kullanmaz. Veri almak için bile tüm istekleri için POST kullanırlar. Belgelerini görmek için bu link kontrol edin. Veri almak ve JSON parametrelerini geçmek için POST kullandıklarına dikkat edin.

    +0

    Evet, yine de HTTPS kullanıyorum. Seçenekler (i) ve (ii) bana da iyi görünüyor, ben seçenek için gitmem (iii). (Ii) 'de, buradaki etikete ihtiyacım olduğunu belirtmek için * Temel * veya başka bir şey eklemem gerekir mi? –

    +2

    Bir Taşıyıcı belirteci türü kullanıyorsanız Eh, genel bir fikir belirteci türü ... eklemektir, sahip olabilir "Yetki: Hamiline ", bu müşteri kimlik bilgileri bakmamaya uygulamanızı söyleyecektir. – divyanshm

    +13

    Sorgu dizesinde erişim belirtecinin geçirilmesi önerilmez! HTTPS, açık metin olarak sorgu dizesi parametreleri de dahil olmak üzere URL'yi yine de ister. Sadece başlıklar ve vücut şifreli! –

    İlgili konular