OmniAuth + Devise + Rails 3 fails in production with Error::EACCES
On my local machine Google auth is working fine but when I release to my production server on Dreamhost I get the following error when I click on the Google auth button on my login page.
Started GET "/auth/google?openid_url=https://www.google.com/accounts/o8/id" for [REMOVED IP] at Wed May 25 08:47:01 -0700 2011
Errno::EACCES (Permission denied 开发者_运维技巧- /tmp/associations/https-www.google.com-apdYYPrtQGUIj7Vp7jMTz.Kn74A-ZmpumY7Issy.P1r4_X0d6_oGqkI):
I temporarily chmod'd the tmp folder to 777 but I still get the permission denied error. What else can I try?
TIA
Make sure your OpenID filestore is setup correctly, ie..
OpenID::Store::Filesystem.new('./tmp')
(Notice the . in front of the /tmp)
If you can't get it to work with the filesystem, a lot of people have used a database or memcached store.
See the documentation: https://github.com/intridea/omniauth/wiki/OpenID-and-Google-Apps
This example app was written for Heroku, but the problem is the same (couldn't configure write access properly): https://github.com/madhums/omniauth-on-heroku/
Hope this helps.
精彩评论