2014-01-05 3 views
1

저는 작은 응용 프로그램을 만들고 Omniauth와 omniauth-twitter gem을 사용하기 시작했습니다.Omniauth Twitter가 session_expired 오류로 인해 실패합니다.

twitters가 콜백 URL을 조회하고 오류 응답이 auth/failure?message=session_expired&strategy=twitter으로 전송 될 때까지 Everyhting은 정상적으로 진행됩니다. 내가 /admin/login에 갈 때

class Admin < Sinatra::Base 
    register Sinatra::Namespace 
    enable :sessions 

    use OmniAuth::Builder do 
    provider :twitter, 'Cient_ID', 'Client_secret' 
    end 

    namespace '/admin' do 
    get do 
     erb :index 
    end 

    get '/login/?' do 
     redirect '/auth/twitter' 
    end 

end 

get '/auth/twitter/callback' do 
    "You are now logged in" 
end 
end 

내가 응용 프로그램을 승인 나 한테 물어 트위터로 리디렉션 얻을 내가 클릭하여이 날 ​​다시 리디렉션 "허용"하지만 난 그냥 보내 얻을 : 여기

지금까지 내 코드입니다 같은 실패 화면에 반복해서.

답변

1

나는 이것을 내 생각에 알아 냈습니다. 내 웹 서버로 Pow를 사용했고 프로젝트 폴더에 'tmp'라는 폴더가있었습니다. POW에게 'always_restart'라는 파일을 추가하여 요청할 때마다 서버를 다시 시작하도록 지정할 수 있습니다. 모든 요청에서 서버가 다시 시작되었다는 사실은 세션 토큰이 유효하지 않음을 의미합니다. 이 파일을 삭제하면 작동하게됩니다.

+0

답변으로 받아 들여주세요. :) –

+0

나는 왜 내가 로컬에서 작동하지 않는지 내 인생에 대해 알아낼 수 없었기 때문에 몇 주 동안 작은 프로젝트에 갇혀 있었다. 이것은 그 것이다. 고맙습니다! 요구가있을 때를 제외하고는 자동으로 요청을 다시 시작하는 것이 좋습니다. –

관련 문제