인증이있는 단일 페이지 응용 프로그램을 개발하려고합니다. 저는 Devise (Rails)와 AngularJS를 사용합니다. 레일 응용 프로그램과 내 angularjs 응용 프로그램이 동일한 서버에 있지 않은 몇 가지 이유가 있습니다. 따라서 크로스 도메인 문제를 처리해야합니다 ... 그리고 헤더에 X-CSRF-Token을 보낼 수 없습니다. 제대로 로그인하고 로그 아웃하고 문제없이 GET 요청을 보낼 수 있습니다. 내 레일 컨트롤러에서 current_user를 사용할 수 있습니다. 올바르게 설정되었습니다. 그러나 POST 요청을 보낼 때 current_user는 null입니다. 내 session_id가 전송되지 않은 것 같습니다. 동일한 서버에서 내 Ajax 요청을 보내면 문제가되지 않기 때문에 문제는 크로스 도메인 때문입니다.Devise AJAX - POST 요청 : current_user is null
나는 2 가지 해결책이 있다고 생각한다. - 인증 쿠키 기반을 사용하지 않지만 토큰을 사용한다. - 프런트 엔드와 백엔드를 동일한 서버에 배치한다.
다른 아이디어? 왜 크로스 도메인에서 POST 요청을 보낼 때 current_user가 null입니까? 이 모두 함께 CSRF을 해제 (issue thread on github explaining why)이 대략가는
가장 안전한 방법은 몇 가지 보안 구멍을 노출하는 나쁜 습관이다 그러나이
들으하기위한 목적으로,인가 : SSO 인증을위한 OAuth2를 가진 authentication_token 호환 (페이스 북과 같은)? 그런데 oAuth를 사용하여 토큰을 관리 할 수 있습니까? – vpoulain
예. 함께 사용할 수 있습니다. 그것은 좋은 레일 에피소드 http://railscasts.com/episodes/235-omniauth-part-1 캐스트의 여기에 사용자에 부착 할 인증의 또 다른 유형입니다. 다른 인증 공급자로 자신의 응용 프로그램을 처리한다면 나는 그것이 전혀 도움이 될 것입니다 경우 확실히 가능하지만 믿습니다. 문제는 이미 자체 토큰을 관리하기위한 시스템을 갖추고 있다는 것입니다. –