2015-01-31 2 views
3

Nop Commerce 스토어 (3.50)를 개발 중입니다. 내 유익한 웹 사이트에서 제공하는 링크를 클릭하면 사용자가 nop commerce 사이트로 리디렉션된다는 요구 사항이 있습니다. 나는 그 사이트의 사용자 정보가 지나치지 않은 상거래 스토어에 전달하여 사용자가 nop 스토어에 다시 로그인 할 필요가 없도록하려고합니다.Nop commerce 다른 웹 사이트에서 싱글 사인온

사용자가 nop store로 리디렉션 될 때 헤더 값으로 사용자 이름과 암호를 전달할 수 있으며 헤더의 자격 증명을 사용하여 프로그래밍 방식으로 사용자를 로그인 한 것으로 설정할 수 있습니까?

답변

1

실제로 NopCommerce 코드를 약간 수정해야하지만 가능합니다. Nop.Commerce는 쿠키를 사용하므로 AJAX를 통해 사용자의 유효성을 확인하고 일회용 토큰을 반환하고 일부 리디렉션을 수행해야합니다. 여기

내가 무슨 짓을 :

1) 출처 간 요청을 허용하도록 대상 서버를 수정합니다.

2) AJAX를 통해 사용자의 신원을 확인하는 대상 서버의 CustomerController에 사용자 지정 ActionResult를 만듭니다. 성공한 경우 일회용 보안 토큰을 사용하여 맞춤형 고객 속성 (맞춤 방식)을 설정하십시오. SUCCESS/FAILURE 인 JSON 객체를 클라이언트에 반환합니다. 하지 마! 이 단계에서 사용자를 로그온하십시오.

3) 보안 토큰의 사용자 전자 메일 주소를 전달하는 CustomerController에서 다른 사용자 지정 ActionResult를 만듭니다. 보안 토큰이 (2 단계에서 설정 한) 사용자 정의 고객 속성과 일치하면이 junction에서 사용자를 로그인하고이 ActionResult에 세션 쿠키를 설정해야합니다. 자바 스크립트를 사용하는 검은 페이지를로드하여 사용자를 고객 포스트 로그인 방문 페이지로 리디렉션합니다 (쿠키가 클라이언트 시스템에 설정되었는지 확인). 중요한 것은 사이트의 승인 된 부분을 리디렉션하기 전에 쿠키를 설정 한 후에 페이지가로드되는지 확인하십시오.

4) 클라이언트가 경우 JSON 객체를 가져옵니다 2 단계

5)에서 만든 ActionResult에 사용자의 신원을 확인하기 위해 AJAX 호출을 사용하여 원격 사이트에 외부 로그인 페이지 확인 유효한 로그인이고 3 단계에서 만든 ActionResult로 리디렉션하십시오.

큰 점은 양식 인증을 사용하는 것이므로 이어야합니다. 쿠키를 설정하기 전에 사용자가 대상 도메인의 페이지를 방문해야합니다. EXTERNAL_SITE -> TARGETSITE_AUTHENTICATED_PAGE가 작동하지 않습니다. EXTERNAL_SITE -> TARGETSITE_SETCOOKIE_AND_REDIRECT_PAGE -> TARGETSITE_AUTNETICAT_PAGE

을 수행해야합니다.