Mesi fa ho creato un'applicazione per i binari autenticata con google utilizzando oauth2, in particolare la gemma omniauth-google-oauth2. Ho avuto tutti i passaggi necessari per creare l'autenticazione e memorizzare un token di aggiornamento, ma recentemente oauth2 ha interrotto l'invio di un 'refresh_token' come parte della risposta. Originariamente stavo ricevendo una risposta che conteneva:Come posso recuperare un 'refresh_token' per l'app per rails con omniauth google oauth2?
credentials: {
refresh_token: XXX,
token: YYY,
expires_at: 1374840767,
expires: true
},
Ora ho solo recuperare il token che scade nel giro di un'ora:
credentials: {
token: YYY,
expires_at: 1374840767,
expires: true
},
io davvero non so quello che ho fatto sul lato domanda di cambia questo, quindi non sono sicuro se qualcosa è cambiato con google, o se è stato qualcosa che ho fatto. Per il contesto, il mio codice è simile:
inizializzatori/omniauth.rb:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, 'KEY', 'SECRET', {:scope => "userinfo.email,userinfo.profile,analytics.readonly,adsense.readonly"}
end
authentications_controller.rb è dove ricevo la risposta:
def create
auth = request.env["omniauth.auth"]
params = request.env["omniauth.params"]
project = Project.find(params['project_id'])
Authentication.create(:project_id => project.id, :provider => auth['provider'], :uid => auth['uid'], :access_token => auth['credentials']['refresh_token'])
flash[:notice] = "Authentication successful."
redirect_to owner_view_project_path(project)
end
E 'possibile manca qualcosa in il mio file initializers/omniauth.rb? Ho provato ad aggiungere quanto segue alla hash opzioni, ma che non sembrano riportare il token di aggiornamento:
:approval_prompt => "force", :access_type => "offline"
Qualsiasi aiuto sarebbe molto apprezzato! Grazie in anticipo!
hai risolto questo problema? Sto affrontando lo stesso problema ora e mi piacerebbe vederti la soluzione. Grazie! –