2016-07-07 3 views
0

Spree gem을 사용하여 개발 한 Rails 앱이 있습니다. 보안상의 이유로 모든 API 기능을 비활성화하고 싶습니다. REST 호출, 메소드, 라우트를 만들 수 있습니다. 나는 대부분의 API 기능이 API 토큰없이 호출 될 수 없다는 것을 알고 있습니다.기존 앱에서 Spree API 기능을 사용 중지하는 방법

API 기능을 '끄기'위해 가장 좋은 방법은 무엇입니까?
가장 좋은 방법 == 기존의 코드베이스에 적어도 방해

+0

국가 (GET /api/v1/states)에 대한 국가의 목록을 검색하는 등의 몇 가지 경우에 자신의 API를 사용합니다 Spree에서 기존 설정으로이 작업을 수행하십시오. 나는 이것을 위해 Spree의 포크를 실행하고 싶지 않지만, 이것은 내가해야만했던 것입니다. https://github.com/WebGents/spree/commit/e595b9485f00ec1c89fb6052687f8f6cb2d1b912 – mroach

+0

고마워요. @mroach 꽤 깨끗한 것 같습니다. 결국 API 토큰이 필요하지 않으므로 보안 문제를 일으킨 두 가지 API는 주와 국가입니다. API 토큰 인증을 추가 한 결과 Spree API 사용 사례에 부정적인 영향을 미치지 않으면 서 작동하는 것처럼 보였습니다. –

답변

1

내가 지금까지 Application 클래스 안에 내 호스트 응용 프로그램의 application.rb이를 추가로 왔어요 최고 :

initializer "delete_spree_api_routes", after: "add_routing_paths" do |app| 
    app.routes_reloader.paths.delete_if { |path| path =~ /\/spree(-[^\/]+)?\/api\/config\/routes.rb/ } 
end 

이것이하는 일은이다 는 Spree API가 제공 한 routes.rb에서로드 된 경우 경로의 모든 경로를 즉시 삭제합니다. 약간 추한 일이지만 그 일을합니다.

편집 : 나는 야단법석 등이주의되는 권하고 싶습니다는 내가 방법을 발견하지 않았습니다

관련 문제