2017-05-21 4 views
2

CouchDB _session 끝점에 대한 호출은 내가 통과하는 쿠키가 없거나 잘못 되었더라도 항상 200 HTTP 상태 코드를 반환하는 것처럼 보입니까?CouchDB의 _session에 대한 호출은 항상 200을 반환합니다.

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

이 있습니다 :

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

올바른 쿠키를 통과, 나는 약간 다른 응답을받지 : 잘못된 쿠키 나 항상 내 GET 요청 헤더없이 쿠키를 전달

반환하는 것 표준 행동? 그렇다면 성공적인 인증을 위해 어떤 키를 의지해야합니까? res.userCtx.name 또는 res.info.authenticated일까요?

+0

[문서] (http://docs.couchdb.org/en/2.0.0/api/server/authn.html#get__session)을 아직 확인하지 않았습니까? –

+0

@ DominicBarnes 환호. 나는 그 페이지를 보았지만 어떤 이유에서'GET/session' 부분을 건너 뛰어야 만합니다. – shennan

+0

설명서에는 잘못된 쿠키 또는 전혀 쿠키가없는 경우 401이 반환된다는 제안은 없지만 항상 200이나 그 이유에 대한 추론을 제안하지는 않습니다. 세션이 유효하지 않은 경우에도 항상 userCtx 객체를 반환하기 위해 해당 끝점이 필요한 단일 이유를 생각할 수 없습니다. – Ravenstine

답변

0

이것은 문서에 명시 적으로 언급되어 있지 않지만 표준 동작으로 보입니다.

그러나 /_session?basic=true과 같은 쿼리에서 을 설정하면 CouchDB에 401 응답을 반환하도록 지정할 수 있습니다.

기본 인증에는 유용하지만 쿠키 인증 사용자와도 사용할 수 있습니다. (CouchDB 2.0.0에서 테스트 됨)