Google App Engine (GAE) gives you an easy way to build and host web applications for free.
For any address you specify in your GAE app, you can require users to be authenticated. For example, if you have this in your app.yaml:
- url: /authme script: myAuthenticatedService.py login: required
When a user goes to http://yourapp.appspot.com/authme in their browser, they get taken first to a google.com logon page and promtped for their google username and password.
Only if they authenticate correctly will Google pass them back to your page, and let them access your /authme
page.
(This is kinda nice, because as a GAE app developer, you shouldn’t need to see the user’s password. Although, I guess most users won’t make a distinction between typing in their username and password into the google.com login page and into a login form on an appspot.com page.)
If you are writing browser-delivered apps, this is all fine and works as described. This is slightly trickier if you are writing a web service that you want to be accessed by a client app. I wanted to access a GAE web service from a mobile client – this is how I’m doing it.