2012-08-14 9 views
7

HEDEF: Benim web uygulaması Drupal sitesine, Drupal sitesinde bir kullanıcı adı ve şifre göndermek için mümkün istiyorum ve Drupal sitem varGirişi uzaktan Drupal 7 sitesi kullanarak hizmetleri modülüne

Kullanıcı kimlik doğrulama bilgilerinin doğru olup olmadığına dair onay ile cevap verir.

başka ihtiyacın Drupal sunucu vb e-posta, kullanıcı rolü gibi, kullanıcı için oluşturulan bir oturum için bir oturum kimliği dönün ve bilgi sahip olmaktır

Ne var bugüne kadar:

Ben Hizmetler istirahat Sunucusu etkin ve www.mysite.com/rest/ bir bitiş noktası oluşturduk. Yanıt biçimini yalnızca json olarak ayarlıyorum ve uygulama/x-www-form-urlencoded uygulamasına ayrıştırıcı isteğinde bulundu. Oturum, hata ayıklama modu ile kimlik doğrulamayı açtım. Ayrıca, bu uç nokta için tüm kullanıcı kaynağını etkinleştirdiğinden emin oldum. Www.mysite.com/rest/user adresine gitmek bana tüm kullanıcıların listesini veriyor. kimlik doğrulaması ile benim girişimleri İlişkin

, Ben istekleri göndererek denedim:

POST www.mysite.com/rest/user/login 
    Content-Type: application/x-www-form-urlencoded 
    POST Body: 
     name:admin, 
     pass:myadminpassword 

Ama bu sadece 401 Yetki yanıt döndürerek tutar. Kontrol ettim ve kimlik bilgileri doğru. Ben gibi parametre adları başka varyasyonlarını denedim: vb (kullanıcı adı, parola), (kullanıcı, pas), (adı, şifre),

işe giriş almak gibi olamaz ve ben ettik Stackoverflow'ta bulduğum diğer örneklere baktım ama işe yaramadılar.

+2

vücut olmamalı: "username = yönetici & şifre = adminpass" eğer "x-www-form-urlencoded" kullanıyorsunuz? Tabii –

+1

aaaaaaaand o kadar basit bir şeydi. POST parametrelerinin ve GET parametrelerinin aynı şekilde biçimlendirildiğini unuttum. Teşekkür ederim. – user594044

+0

da json (veya hizmet modülü tarafından desteklenen başka bir biçimde) yayınlayabilirsiniz. Sadece servis kaynak config "sunucu" sekmesine onay kutusunu tıklayın ve bir json nesnesi ile POST gövdesini doldurun. –

cevap

4

drupal.org hizmetleri modülü için iyi dokümantasyon vardır. Yani

curl -X POST -i -H "Content-type: application/json" -c cookies.txt -X POST http://localhost:8888/service/user/login -d ' 
{ 
    "username":"user", 
    "password":"password" 
} 
' 

:

http://drupal.org/node/1795770

Ve giriş için bir örnek içerir: http://drupal.org/node/783722

bu sayfadaki örnek komut satırı aracı kıvırmak kullanıyor: Bu bilhassa burada servicers kullanmaya ilişkin çeşitli örnekler vardır

  • Son noktanız var ok
  • İçerik türü uygulama olmalıdır lication/json
  • ve vücut {: "yönetici", "parola": "kullanıcı adı" "pass"} gibi bir şey olmalıdır