web.py 文件源码

python
阅读 18 收藏 0 点赞 0 评论 0

项目:census 作者: ioddly 项目源码 文件源码
def login_xenforo(user=None):
    if user: return redirect('/')

    code = request.query['code']

    data =  {'grant_type': 'authorization_code',
            'code': code,
            'client_id': config['XF_CLIENT_ID'],
            'client_secret': config['XF_SECRET_KEY'],
            'redirect_uri': '%s/login/xenforo' % config['SITE_URL']}

    res = requests.post('%s/api/index.php?oauth/token' % config['XF_URL'], data = data) 
    res_data = res.json()
    res.raise_for_status()

    pprint(res_data)
    user = {
        'identity': res_data['user_id'],
        'identity_type': 'xenforo',
        'access_token': res_data['access_token'],
        'refresh_token': res_data['refresh_token'],
        'user_id': res_data['user_id'],
        'authlink': str(uuid.uuid4()), # this is still used to unsubscribe from emails
        'subscribed': True,
    }

    # get extended information
    res = requests.get('%s/api/?users/%s&oauth_token=%s' % (config['XF_URL'], res_data['user_id'], user['access_token']))
    xf_user = res.json()['user']

    user['xf_username'] = xf_user['username']
    user['email'] = xf_user['user_email']

    r.table('users').get(user['identity']).replace(user).run(conn())

    return users.login(user)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号