2012-09-01 5 views
0

로컬로 실행중인 Rails 앱에 간단한 $ .ajax 요청을하려고합니다.레일즈 사파리 익스텐션에서 Devise 401

요청은 콘솔에서 문제없이 작동하지만 사파리 확장 프로그램에서 전화를 걸면 앱이 401 Unauthorized를 반환합니다. 각 사용자에 대해 api 토큰을 만들어 URL 문자열에 전달하여 인증해야하는지, 아니면 로그인 한 상태에서도 devise가 요청을 처리하지 않는 간단한 이유가 있는지 확실하지 않습니다. 내 생각 엔 범인은 다음과 같습니다 내 컨트롤러에 내가 가지고있는 전 필터입니다 :

before_filter: authenticate_user! 

그러나 다시, 나는이 응용 프로그램에 로그인하고 401을 얻는다. 참고로 여기에서 내선 번호로 걸고있는 전화 번호는 다음과 같습니다.

$.ajax({                                                   
       type: 'GET',                                                 
       url: 'http://localhost:3000/playlists.json?callback=?,                                    
       dataType: 'jsonp',                                                 
       success: function(data) { console.log(data); },                                              
       error: function() { console.log('Uh Oh!'); }, 
       jsonp: 'jsonp', 
       crossdomain: true                                    
      }); 

어떤 도움을 주셔서 감사합니다.

답변

0

알아 냈습니다. 설정된 쿠키는 '세션'이후에 만료되도록 설정되었으므로 기본적으로 페이지에서 벗어나면 세션이 더 이상 존재하지 않습니다. 따라서 확장 프로그램은이 확장 쿠키에 액세스 할 수 없었습니다. http://en.wikipedia.org/wiki/HTTP_cookie#Session_cookie

:

YourApp::Application.config.session_store :cookie_store, { 
   :key => '_yourapp_session', 
   :expire_after => 60*24*60*60 
} 

당신은 여기 쿠키 유형에 대해 자세한 내용을보실 수 있습니다 : 키는 설정/초기화/session_store.rb에서 다음과 같이 할 수있는 세션 쿠키에 기본적으로 만료 날짜를 설정하는 것이 었습니다

관련 문제