예제 #1
0
class FacebookoauthController(MakoTemplateController):
    """
    A controller to set parameters in cookie sent from facebook
    """


    def __init__(self, hnd, params = {}):
        """
        Initialize method
        """
        super(FacebookoauthController, self).__init__(hnd, params)
        self.auth_obj = None


    @expose
    def index(self):
        token = self.params.get('oauth_token')
        self.auth_obj = FacebookOAuth()
        self.auth_obj.controller = self
        self.auth_obj.request = self.request
        self.auth_obj.request.args = self.request.params
        self.auth_obj.get_authenticated_user(self._post_action)


    def _post_action(self, user):
        """
        A method to put facebook user information to memcache
            and redirect to original page
        """
        if user:
            d = {'type':FacebookOAuth.TYPE,
               'nickname':user.get('username', '') or user.get('name', ''),
               'email':'',
               'userid':user.get('uid', ''),
               'realname':user.get('name', ''),
               'icon_url':user.get('pic_square', ''),
               }
            memcache.set(self.cookies.get(OAUTH_ACCESS_TOKEN_COOKIE),
                         d, namespace = FACEBOOK_NAMESPACE, time = EXPIRE)
            rurl = self.session.get('referer', '')
            if rurl:
                del self.session['referer']
            self.session.put()
            if rurl:
                self.redirect(rurl)
            else:
                self.redirect('/')

        self.render(' ')
예제 #2
0
 def index(self):
     token = self.params.get('oauth_token')
     self.auth_obj = FacebookOAuth()
     self.auth_obj.controller = self
     self.auth_obj.request = self.request
     self.auth_obj.request.args = self.request.params
     self.auth_obj.get_authenticated_user(self._post_action)