2012-08-14 6 views
7

GOAL:私は私のWebアプリはDrupalサイトに、私のDrupalサイト上のユーザーのユーザー名とパスワードを送信できるようにしたいとDrupalサイトを持っているログインリモートでのDrupal 7サイト使用してサービスモジュールに

ユーザ認証情報が正しいかどうかの確認で応答する。

別の必要性は、Drupalのサーバー等、電子メール、ユーザーの役割、のように、ユーザーのために作成されたセッションのセッションIDを返し、情報持つことです

私がこれまで持っている:

私はServices Rest Serverを有効にして、www.mysite.com/rest/にエンドポイントを作成しました。応答形式をjsonのみに設定し、パーサーにapplication/x-www-form-urlencodedを要求します。セッションごとの認証、デバッグモードを有効にしました。また、このエンドポイントのユーザーリソース全体を有効にするようにしました。 www.mysite.com/rest/userに移動すると、すべてのユーザーのリストが表示されます。認証と私の試みについて

、私がリクエストを送信しようとしました:

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

しかし、それだけで401無許可応答を返す続けます。私は二重チェックし、認証情報が正しいです。私は(ユーザー名、パスワード)、(ユーザー、パス)、(名前、パスワード)などのような他のバリエーションを試しました。

私はログインがうまくいかないようです。私がStackoverflowで見つけた他の例を見ても、うまくいきませんでした。

+2

体はすべきではありません: "ユーザ名=管理者&パスワード= adminPassは" もしあなたは "x-www-form-urlencoded"を使用していますか? –

+1

aaaaaaaもちろん、それはとても単純なものでした。私はPOSTパラメータとGETパラメータが同じようにフォーマットされていることを忘れていました。ありがとうございました。 – user594044

+0

また、json(またはサービスモジュールでサポートされている他の形式)でPOSTすることもできます。サービスリソース設定の "サーバー"タブのチェックボックスをクリックして、POST本体にjsonオブジェクトを入力してください。 –

答えて

4

drupal.orgのサービスモジュールに関する優れたドキュメントがあります。だから、

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

そして、ログインのための1つの例が含まれていますhttp://drupal.org/node/783722

このページの例をコマンドラインツールのカール使用している:Particularyここサービサーを使用するためのいくつかの例があります

  • あなたのエンドポイントはOKです
  • コンテンツタイプはapp lication/JSON
  • と体が{: "管理者"、 "パスワード": "ユーザー名" "パス"}のようなものでなければなりません
関連する問題