quarta-feira, 20 de outubro de 2010

authlogic_oauth error 401

Estava utilizando o authlogic + authlogic_oauth para o twitter e estava dando um Erro de 401 Unauthorized

Solucoes propostas encontradas na internet:

System date considered important
http://www.coffeepowered.net/2009/12/05/system-date-considered-important/

http://blainegarrett.com/2009/07/14/failed-to-validate-oauth-signature-and-token-on-twitter-oauth-check-your-cloc/

ou

this is an issue about time synchronization of your system with twitter server."

http://stackoverflow.com/questions/1280295/keep-getting-oauthunauthorized-error-when-using-oauth-and-twitter-ruby-gems
http://groups.google.com/group/twitter-development-talk/browse_thread/thread/aadee92bc5c34f29?pli=1
http://stackoverflow.com/questions/3552711/401-error-with-ruby-oauth-for-twitter

Aqui vi que realmente precisava ver o log completo
http://stackoverflow.com/questions/3869032/ruby-on-rails-oauth-application-works-on-client-but-not-on-server-oauthunautho

Nada disso resolveu, tentei fazer um log da resposta direto do twitter e achei o seguinte.
"Invalid / expired Token"

Ai percebi que estava enviando algum dado errado ao re-fazer o login, sendo que o cadastro ele rodava certo.

Percebi que a sessao estava com objetos antigos.

Foi apenas forcar a limpa nesses campos do session:
session[:oauth_request_token_secret] = nil
session[:oauth_request_class] = nil
session[:oauth_request_token] = nil

e funcionou muito bem!

resumindo, configuracao feita correndo, detalhes perdidos e muito tempo gasto.

Atualizacao: 7/dez/2010: Se voce faz um redirect_back_or_default depois do login fique atento que voce pode estar requisitando o mesmo token duas vezes com o mesmo codigo e dara o erro 401 tambem.


go now!!

mais literatura: persistencia do oauth http://stackoverflow.com/questions/2032976/presist-twitter-oauth-session