오늘 개발을 하다가 특정 HTTP request 툴을 이용하여 요청을 하려고 했는데, InvalidAuthenticityToken에러가 발생했습니다.
rails에서는 외부로부터의 불법적인 요청(CSRF)을 막기 위해서 authenticity token을 발행하여 요청 시 같이 보내도록 하고 있습니다.
불법적인 요청에 관한 글은 http://en.wikipedia.org/wiki/Cross-site_request_forgery에 자세히 명시되어 있습니다. 따라서 페이지에서도 보면 csrf_meta_tags를 노출하고 있는데 이 또한 이러한 이유 때문입니다. 이를 피하는 방법은 해당 컨트롤러/액션에 대해서 토큰 검사를 하지 않겠다고 명시하면 됩니다. 그 방법은 다음과 같습니다.
skip_before_filter :verify_authenticity_token또는 특정 액션에 대해서 지정할 수도 있습니다.
skip_before_filter :verify_authenticity_token, :only => [:index, :show]감사합니다.
댓글 없음:
댓글 쓰기