On some recent Grails projects, I have been looking at using the Twitter and Facebook OAuth signin process.
This process allows you to authenticate users based on their Twitter/Facebook logins, without the need for the user to expose their passwords to your site.
When you create your 'application' within Twitter or Facebook, it is necessary to define the URL where the application can be accessed. Twitter and Facebook will only redirect to this URL during the authentication process.
I have tested running some applications on Heroku or Appfog, with Twitter and Facebook happy to redirect to the appropriate URLs with successful authentication.
However, when testing locally, I follow these steps to work through the authentication process.
1. App Context
Ensure that the Grails app context is '/' - as the application is generally deployed this way on Heroku/Appfog:
2. Port Binding:
While the local application will generally run on port 8080, we want it accessible via port 80 - as it is run on Heroku and Appfog. One method of achieving this locally is to bind the ports as follows
Note: if you are working on a Mac - ensure that Remote Login is enabled also.
If you application is running via HTTPS (port 8443), the following port forward command is required:
3. Hosts
Edit the /etc/hosts file in order to redirect calls to your Heroku/Appfog application URL to your localhost:
This process allows you to authenticate users based on their Twitter/Facebook logins, without the need for the user to expose their passwords to your site.
When you create your 'application' within Twitter or Facebook, it is necessary to define the URL where the application can be accessed. Twitter and Facebook will only redirect to this URL during the authentication process.
I have tested running some applications on Heroku or Appfog, with Twitter and Facebook happy to redirect to the appropriate URLs with successful authentication.
However, when testing locally, I follow these steps to work through the authentication process.
1. App Context
Ensure that the Grails app context is '/' - as the application is generally deployed this way on Heroku/Appfog:
Config.groovy grails.app.context = '/'
2. Port Binding:
While the local application will generally run on port 8080, we want it accessible via port 80 - as it is run on Heroku and Appfog. One method of achieving this locally is to bind the ports as follows
sudo ssh -L 80:localhost:8080 root@localhost
Note: if you are working on a Mac - ensure that Remote Login is enabled also.
If you application is running via HTTPS (port 8443), the following port forward command is required:
sudo ssh -L 443:localhost:8443 root@localhost
3. Hosts
Edit the /etc/hosts file in order to redirect calls to your Heroku/Appfog application URL to your localhost:
/etc/hosts 127.0.0.1 murmuring-gorge-6675.herokuapp.com
4. Test the Process
Now, running the application on your local machine, it should be possible to follow the Twitter/Facebook OAuth process, with all interaction taking place with your local server.
Comments
Post a Comment