Drupal Services OAuth


8

Bu konu üzerinde birkaç haftadır çalışıyorum ve hayatım için bir çözüm bulamıyorum. (Drupal'ın web sitesinde veya başka bir yerde) iyi bir belge bulamadım da yardım etmiyor. Ve burada zaten sorular eski (Hizmetler 2.x).

Drupal Commerce destekli bir site için bir REST hizmeti oluşturmaya çalışıyorum. Şimdilik, tüm hizmetin yapılması gereken Order kaynağında temel CRUD işlemlerine izin vermek ve OAuth ile güvence altına almak için OAuth 2.0 gerekli değildir. Sunucudaki bir komut dosyasıyla da çağrılmalıdır, bu nedenle oturum açma yeniden yönlendirmeleri imkansızdır (her şey 2 aşamalı kimlik doğrulaması ile yapılır).

Geçerli yığın:

  • PHP 5.3.15
  • Drupal 7.15
  • Ticaret Kickstart profili (7.x-2.0-rc1)
  • Hizmetler 7.x-3.2
  • OAuth 7.x-3.0 + 18-dev
  • OAuth Kimlik Doğrulaması 7.x-3.2
  • REST Sunucusu 7.x-3.2
  • Commerce Services 7.x-1.x-dev (Bu, özel Sipariş kodumu eklediğim modüldür)

Ben bir OAuth PHP kütüphanesi kullanırsanız ve sadece her zaman jeton isteği çağırırsanız Siparişler için çalışmak için Retrieve / Index işlevlerini alabilir (kimlik doğrulaması dışında orada olup bitenden bile emin değilim ...). Siparişler için POST yapmaya ve bir sipariş oluşturmaya çalışırsam, komut dosyasıyla 406 ve Google Chrome'daki REST Konsolu'ndan doğrudan POST isteği denediğimde, OAuth devre dışı olsa bile 401 alırım.

Bu, hata ayıklamayı bir kabus haline getirdi çünkü yaratma fonksiyonumda neler olup bittiğine dair hiçbir fikrim yok. Ben sipariş oluşturma mantığı sıyırma denedim ve sadece istek yükü yankı. Hala 406/401 hatalarını alıyorum.

Siparişleri bir kullanıcı kimlik doğrulaması gerektirdiğinden (hizmet için OAuth kapalı olsa bile) 401 hataları aldığımı varsayıyorum.

Neden 406 hatalarını alıyorum anlamıyorum. REST sunucum geri dönmek için ayarlanmış olan application / json'u kabul ediyorum.

Sipariş yaratma mantığını yorumlamadan bile siparişler yaratılmıyordu. (Sitede başka bir yerde etkili bir şekilde kullanıyorum.)

Teşekkür peşin.
-T


Son birkaç ay içinde, tüm POST, PUT ve DELETE istekleri için başlıkta bir simge göndermeniz gerekecek şekilde hizmetler modülü güncellendi. Bunun yaşadığınız sorun olmadığından emin olun: drupal.org/node/2013781 Bu, GET isteklerini etkilemez.
CR47

Ben RESTws kontrol öneririz , bu D8 çekirdek olacak.
kqw

Yanıtlar:


1

Alma isteklerinde oturum kimlik doğrulaması, POST, PUT, DELETE , kullanıcıyı tanımak ve isteği tamamlamak için doğru izinlere sahip olup olmadığını kontrol etmek için oturum kimlik doğrulaması gerekmez.

Oauth kimlik doğrulamasında, bir uygulamanın değil (örneğin) kullanıcının kimlik doğrulaması yaptığınızdan emin olmanız gereken birçok kimlik doğrulama türü vardır, bu nedenle isteğin tamamlanması için yetki verilir.


0

OAuth kimlik doğrulamasını kapatırken de aynı şeyi kontrol ettiniz mi? Değilse, servis çağrınızda örnek bir json obj döndükten sonra deneyin.


Drupal Cevaplarına Hoşgeldiniz! Lütfen cevap olarak yorum veya soru göndermeyin. Bu bir forum değildir ve cevaplar asla OP'ye bir soru sormak için kullanılamaz. (Yeteri kadar itibara sahip olduğunuzda , yorum göndermenize izin verilecektir.)
Free Radical
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.