示例#1
0
文件: auth.py 项目: archlevel/knowing
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()
示例#2
0
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()
示例#3
0
文件: auth.py 项目: archlevel/knowing
def clear_authentication():
    util.set_cookie('auth', None)
示例#4
0
def clear_authentication():
    util.set_cookie('auth', None)