2016-04-14 4 views
0

基本的には、会社から与えられた一連のAPIを使用してWebサイトを構築しています。ここから、私は与えられたAPIにアクセスしたり変更したりすることはできません。NodeJSを使用してC#形式のサーバーのAPIセッションにアクセスする際の問題

APIは、以下に類似した与えられているが、そのAPIを使用すると、コード

http://domainname.com/data.aspx?action=login 

だ、私は成功し、ユーザー名とパスワードを使用してPOSTリクエストをすることによって、真または偽を返すことができました。

次に、私は同様の与えられたURL上のAPIで

http://domainname.com/data.aspx?action=user_details 

、それはセッション[「ユーザー名」]をチェックしていると、ユーザーの詳細を取得しようとしています。これは私の問題が発生する場所です

私の側からは、nodejsを使用しています。

var request = require('request'); 

var postData = { 
    'username': 'example', 
    'userpass': 'abc123', 
}; 

request.get({url:'http://domainname.com/data.aspx?action=login', formData:postData}, function(err,httpResponse,body1){ 
    console.log(body1); 
    request.get({url:'http://domainname.com/data.aspx?action=user_details'}, function(err,httpResponse,body2){ 
     console.log(body2); 
    }) 
}) 

body1の最初にconsole.logは結果:真

をbody2の第二にconsole.logが生じ:[](空の配列)

をAPIが正常に動作していることを確認するために、 Google ChromeのPOSTMAN拡張機能を使用しました。まず、ユーザーにログインしてuser_details APIを実行し、そこからユーザーの詳細を返します。

私の最後には何が欠けていますか?

+0

おそらく、ユーザーデータはCookieに保存されている可能性があります。だから、それは郵便配達員との仕事ですが、依頼ではありません。それを確認できますか? – Ygalbel

+0

@Ygalbel、私はuser_details APIを使用してPOSTMANのクッキーをチェックしました。それにはどんなユーザ名もありません –

+0

彼らはCookie SessionIdを保持しますか? – Ygalbel

答えて

1

デフォルトでは、Asp.netはsessionIdという名前のCookie( )を保持しているので、「要求」でCookieを有効にする必要があります。

Cookieess SessionIDsデフォルトでは、SessionID値は、ブラウザ内の有効期限のないセッションCookieの に格納されます。ただし、 Web.configファイルのsessionStateセクションで cookieless属性をtrueに設定すると、セッション識別子をクッキーに格納しないように指定できます。

としてはRequestドキュメントで、 クッキーは、デフォルトでは無効になっていると述べました。その文書からの引用です

クッキーは、デフォルトでは無効になっているが(他に、彼らは 後続の要求で使用されます)。クッキーを有効にするには、jarをtrueに設定します( のデフォルトまたはオプションのいずれか)。クッキーと

var request = request.defaults({jar: true}) 
request('http://www.google.com', function() { 
request('http://images.google.com') }) 

それは郵便配達やクロムのようなあなたを動作します有効。

+0

ああ!私はそれをチェックすべきだった。 Ygalbel、あなたは命の恩人です。ありがとうございました!それは今働く。 –

+0

3分後にのみ受け入れることができます –

関連する問題