2017-05-21 13 views
2

CouchDB _sessionエンドポイントへの呼び出しは、通過するCookieが不在か間違っていても常に200 HTTPステータスコードを返すようですか?CouchDBの_sessionへの呼び出しは常に200を返す

間違ったクッキーを渡すか、私のGETリクエストヘッダにはクッキーが常に返すように思わない:

{ 
    "ok": true, 
    "userCtx": { 
    "name": null, 
    "roles": [] 
    }, 
    "info": { 
    "authentication_db": "_users", 
    "authentication_handlers": [ 
     "cookie", 
     "default" 
    ] 
    } 
} 

正しいクッキーを渡すとき、私は少し異なる応答を受け取る:

{ 
    "ok": true, 
    "userCtx": { 
    "name": "jack", 
    "roles": [] 
    }, 
    "info": { 
    "authentication_db": "_users", 
    "authentication_handlers": [ 
     "cookie", 
     "default" 
    ], 
    "authenticated": "cookie" 
    } 
} 

はこれです標準的な振る舞い?そうであれば、認証に成功するためにはどの鍵を頼るべきですか? res.userCtx.nameまたはres.info.authenticatedである必要がありますか?

+0

[ドキュメント](http://docs.couchdb.org/ja/2.0.0/api/server/authn.html#get__session)はまだチェックされていますか? –

+0

@DominicBarnes乾杯。私はそのページを見ましたが、何らかの理由で 'GET/session'の部分をスキップしなければなりませんでした。 – shennan

+0

このドキュメントでは、401が不正なCookieに対して返されるか、またはCookieがまったく返されないことを示唆するものではありませんが、それが常に200または理由の理由を返すことも示唆していません。なぜなら、セッションが無効であっても常にuserCtxオブジェクトを返すようにエンドポイントを必要とする理由はないと思います。 – Ravenstine

答えて

0

これはドキュメントに明示されていませんが、これは標準的な動作です。

しかし、/_session?basic=trueのようにクエリーにを設定することで、CouchDBに401応答を返すように指示できます。

基本認証には便利だが、Cookie認証ユーザーでも機能すると考えられます。 (CouchDB 2.0.0でテスト済み)

関連する問題