def authenticate_from_oauth(sakuya_db): oauth_token = request.query.get('access_token') if oauth_token is not None: oauth_config = get_config('webapp')['oauth'] try: f = urllib2.urlopen(oauth_config['url'] + '/resource.php', urllib.urlencode({'oauth_token': oauth_token, 'getinfo': True}), 5) user = f.read() f.close() user = json.loads(user) for k in user.keys(): if isinstance(user[k], unicode): user[k] = user[k].encode('utf-8') row = sakuya_db.query(Users).filter_by(username=user['username']).first() if row is None: row = Users() row.username = user['username'] row.truename = user['chinese_name'] row.email = user['email'] sakuya_db.add(row) sakuya_db.commit() util.set_cookie('auth', (row.id, row.username, row.truename, row.mobile, row.email)) return True except Exception, e: print 'Fail to login from oauth.' traceback.print_exc()
def authenticate_from_oauth(sakuya_db): oauth_token = request.query.get('access_token') if oauth_token is not None: oauth_config = get_config('webapp')['oauth'] try: f = urllib2.urlopen( oauth_config['url'] + '/resource.php', urllib.urlencode({ 'oauth_token': oauth_token, 'getinfo': True }), 5) user = f.read() f.close() user = json.loads(user) for k in user.keys(): if isinstance(user[k], unicode): user[k] = user[k].encode('utf-8') row = sakuya_db.query(Users).filter_by( username=user['username']).first() if row is None: row = Users() row.username = user['username'] row.truename = user['chinese_name'] row.email = user['email'] sakuya_db.add(row) sakuya_db.commit() util.set_cookie( 'auth', (row.id, row.username, row.truename, row.mobile, row.email)) return True except Exception, e: print 'Fail to login from oauth.' traceback.print_exc()
def clear_authentication(): util.set_cookie('auth', None)