views:

41

answers:

1

I'm new to Google Apps Engine (working on an existing project for someone else) and it seems a bit different than Django as far as the login as the login is handled by Google, I'm trying to make it so the app creates a custom cookie for a user upon their logging in but can't seem to find the handler for the login action... I apologize for the newbie question but would appreciate if anyone can point me in the right direction on how to accomplish this. (just calling an action upon a user's login)

I'm looking at some tutorials, like this one: http://www.browse-tutorials.net/tutorial/login-register-logout-python-appengine and it basically says you just generate the links since google handles the login so I can't seem to figure a solution to an issue like this.

Thanks

A: 

I solved that problem using the Django middleware system and a session. I think the use of a session is the best way to guarantee that the action only happens on login (whereas an url can be reloaded manually).

Django sessions does not work out of the box, so I implemented my own sessions. However, there exists good appengine-specific implementation as this article points out: http://blog.notdot.net/2010/02/Webapps-on-App-Engine-Part-5-Sessions

I implemented my middleware class like this, and added it to MIDDLEWARE_CLASSES in settings.py:

class LoginManager(object):
    def process_view(self, request, view_func, view_args, view_kwargs):
        user = users.get_current_user()
        if user is not None:
            marker = Session.get(user.user_id())
            if marker is None:
                login_action()
                Session.set(user.user_id(), "true")
geofrank