나는 Laravel 5.5 및 Angular 4로 SPA를 구축하고 있습니다. "최상의"(안전하고 안전한 모범 사례 등) 인증 방법에 대해 혼란스러워합니다. 내 API 요청. 현재, 사용자가 로그인 한 후 응용 프로그램 전체가 포함 된 내 Angular 응용 프로그램의 색인 페이지로 리디렉션되는 기존의 세션 기반 로그인 시스템이 있습니다. 모든 후속 서버 상호 작용은 API 호출을 통해 수행됩니다.Laravel 5 및 Angular 4와 함께 API 토큰을 발급, 액세스 및 사용
몇 가지 기본 자습서에 따라 다음 설정이 있습니다. 각 사용자에게 API 토큰으로 사용되는 60 자의 임의 문자열이 할당되었습니다. 사용자 이름과 비밀번호를 사용하여 로그인 한 후 API 토큰은 헤더의 meta
태그에있는 HTML로 직접 출력됩니다. Angular는이 토큰을 잡고 각 API 호출의 헤더에 전달합니다.
그러나 토큰이 man-in-the-middle 공격을 피하기 위해 비 SSL 연결을 통해 전달되어서는 안되며 토큰이 자동 생성/만료되도록 설정되어야 함을 읽은 이후로
그래서 내 질문 : 단일 페이지 앱
- 만 내부 API 호출 (하지 크로스 도메인)를 사용하여. 이 방법으로 암호화되지 않은 API 토큰을 전달하는 것이 합리적입니까?
- 메타 태그의 HTML에 api 토큰을 직접 출력해도 괜찮습니까?
마지막으로 Laravel의 CSRF 토큰을 사용하는 것이 일반적인 방법 인 것 같습니다. 아마도 나는 너무 많은 편집증 블로그 게시물을 읽었을 것입니까?
감사합니다. 나는 현재 여권을 사용하지 않고있다. 이 블로그 게시물에 설명 된대로 사용자 당 내 자신의 api_token을 간단하게 작성하고 있습니다. https://gistlog.co/JacobBennett/090369fbab0b31130b51 소규모 SPA에 대해 합리적이라고 생각하십니까? 그리고 당신의 견해로는, 토큰을 html 페이지로 출력 한 다음'document.getElementById ("token")'을 사용하여 그것을 잡을 수 있습니까? – Inigo
프론트 엔드 앱에 앵귤러를 사용하는 경우 가장 좋은 방법은 특정 시간 동안 저장소 토큰을 저장하는 서비스를 사용하는 것이며 앱이 API를 사용하여 인증해야하고 html 페이지에서 토큰을 출력하지 않아도됩니다 Api 기반 애플 리케이션에 대한 합리적인, 난 비슷한 문제가있어, 항상 어려운 방법으로 문제를 해결하기 위해 간단한 방법을 사용하십시오 –
처음 토큰을 어떻게 얻을 것입니까? 앱이 처음으로 현재 사용자의 토큰을 요청하기 위해로드 할 때 초기 API 호출을하는 경우 API 호출 자체가 여전히 어떻게 든 확인되어야한다고 생각하십니까? 토큰을 html로 출력 할 때의 보안 문제는 무엇입니까? 감사 – Inigo