2016-06-16 2 views
1

현재 우리는 모든 인증 및 데이터베이스와의 통신을 위해 웹 API를 사용하는 사이트를 구축하려고합니다. 우리가 현재 확신 할 수없는 것은 웹 API를 통해 인증함으로써 MVC 애플리케이션에서 사용자를 지속시키는 방법입니다.MVC 응용 프로그램에서 웹 API로 사용자를 유지하고 인증하는 방법

이것은 MVC 측면에서 어떻게 발생하며 웹 API를 통해 인증을 받아야합니까?

EDIT : ID가 인증 된 후에 ID 사용자를 얻고 ID 사용자를 MVC 측에서 인스턴스화하고 세션 변수에 저장하면 API에 대한 호출을 할 수 있는지 궁금합니다. 우리의 응용 프로그램에 계속. 이것이 가능할 것이고 어떤 모습일까요?

답변

3

MVC는 세션을 인증에 사용합니다. 쿠키가 사용자에게 전송되고 웹 브라우저는 세션을 복원하고 사용자를 인증 된 것으로 인식하도록 서버에 사용할 수 있도록 요청할 때마다 해당 쿠키를 다시 보냅니다.

웹 API는 REST 기반이며 무국적입니다. 세션, 쿠키 등의 개념은 없습니다. 각 웹 API 요청은 일반적으로 베어러 토큰 또는 유사한 것으로 Authorization 헤더를 전달하여 요청에서 인증되어야합니다.

MVC 응용 프로그램이 웹 API를 사용하여 인증하는 경우 웹 API는 인증 토큰을 MVC 응용 프로그램에 반환해야합니다. 그런 다음 MVC 응용 프로그램은 일반 인증 쿠키를 설정하여 사용자를 "로그인"하고 토큰을 저장하여 향후 웹 API 요청을 인증 할 수 있도록해야합니다. 즉, MVC 응용 프로그램은 여전히 ​​정상적으로 권한 부여를 처리합니다. 유일한 차이점은 웹 API의 응답이 직접 만든 데이터베이스 쿼리가 아니라 사용자 이름/암호 콤보를 올바른 것으로 간주하는지 여부를 결정한다는 것입니다.

+0

WebAPI 백엔드에 대한 모든 요청을 인증해야합니다 (토큰을 Authorization 헤더에 전달하고 선택해야 함). MVC 측면에서 인증/권한 부여를 처리하는 것으로는 충분하지 않습니다. 시스템을 악의적으로 파괴하려는 사람은 WepAPI를 직접 공격 할 것이므로 MVC 클라이언트를 사용하지 않을 것입니다. –

+0

내 대답에는 "토큰을 저장하여 향후 웹 API 요청을 인증 할 수 있습니다"라고했습니다. 하지만, 그게 충분히 명확하지 않은 경우를 대비해서. –

관련 문제