2016-10-25 1 views
0

클라이언트에서 angularjs를 사용하고 서버 측에서 C#을 사용합니다. 사용자와 함께 웹 사이트를 만드는 방법을 배우고 싶습니다.웹 사이트 사용자 정보 보유

데이터를 db에 저장하는 방법을 알고 있습니다.

내 진짜 질문은 사이트가 사용자 세션을 기억하는 방법입니다. 새로 고침 후. 그래서 사용자는 다시 로그인 할 필요가 없습니다.

감사합니다.

답변

1

Microsoft는이 목적으로 .NET Web API 프로젝트 용 JWT (JSON Web Token) 패키지를 만들었습니다. 그리고 Angular.js를 사용하고 있으므로 JSON으로 작업하는 것이 좋습니다.

JWT의 작동 방식을 이해하고 다음과 같이 사용자 세션을 안전하게 저장하는 방법에 대한 자습서가 많이 있습니다. https://scotch.io/tutorials/the-anatomy-of-a-json-web-token.

아이디어는 서버가 클라이언트/사용자에게 암호화 된 긴 문자열을 보내는 것입니다. 클라이언트는이를 쿠키에 저장하고 사용자를 확인할 때마다 서버로 보냅니다.

암호화에 관한 복잡한 세부 사항 대부분은 걱정할 필요가 없습니다. JWT 토큰 교환 설정을위한 자습서를 따르십시오.

+0

도움을 주셔서 감사합니다! –

1

요즘에도 쿠키를 사용합니다.

오늘의 안정된 html5 세계에서 우리는 몇 가지 다른 옵션을 사용할 수 있습니다.

Websql, Localstorage, IndexedDB.

아마도 JWT와 같은 것을 사용하여 인증 된 API 호출을하는 데 사용하는 인증 토큰을 저장하고있을 것입니다.

이동 방법은 localStorage에 토큰을 저장 한 다음 api를 호출 할 때마다 주입하는 것입니다.

각도 실행 섹션에서 사용자가 인증되었는지 확인한 다음 토큰이 저장되어 있는지 확인하고 그렇지 않은 경우 로그인 페이지로 보냅니다. 로그인 웹 페이지로 사용자를 보낼 수없는 경우 우리가 토큰을 저장 한 경우이 예에서

angular.module('Scope', ['ui.router', 'ngStorage']) 
    .run(function($localStorage, $state){ 
     if (!$localStorage.authenticationToken) { 
      $state.go('login'); 
     } 
    } 
}); 

때마다 응용 프로그램 재로드는 각 실행 실행 기능, 그리고 검사합니다.

+0

위대한 해결책! –

관련 문제