Esempio n. 1
0
    def post(self):
        #get login agruments. Arguments include facebook accessToken, expiration date, and user fb_id
        from wigi.models.models import User, WigiTokens
        assert(self.get_argument("wigi_accessToken"))
        assert(self.get_argument("wigi_expr_token"))
        assert(self.get_argument("wigi_fb_id"))

        #check if user exists
        if(User.doesUserExist(int(self.get_argument("wigi_fb_id")))):
            #if user exists, check accesstoken
	    user = User.getUserForFbId(int(self.get_argument("wigi_fb_id")))
	    if user.access_token == self.get_argument("wigi_accessToken"):
	        print "user's accesstoken matches"
        	#if accesstoken matches, get secure wigi token
		userToken = WigiTokens.getTokenForUser(user)
		#if no token exists for user, create one
		if not userToken:
		    userToken = WigiTokens.createNewToken(user)
		#write token to response
	        self.write(tornado.escape.json_encode({'wigi_token':userToken.wigi_token,
							'wigi_id':user.id}))
	        self.finish()
            else:
		#Most likely new access token was given 
		#create new token for user based on new access token
		userToken = WigiTokens.createNewToken(user)
		#write token to response
	        self.write(tornado.escape.json_encode({'wigi_token':userToken.wigi_token,
							'wigi_id':user.id}))
                self.finish()
        else:
           print "user doesn't exist"
	   #if user doesn't exist, determine if accesstoken is valid and create user, then create wigi token and write to response
           self.accessToken = self.get_argument("wigi_accessToken")
	   self.facebook_request("/me",
                                access_token=self.get_argument("wigi_accessToken"),
                                callback=self.async_callback(self.__is_access_token_valid))