website.py 文件源码

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

项目:Ostrich 作者: anantzoid 项目源码 文件源码
def googlesignin():
    auth_code = Utils.getParam(request.form, 'data', '')
    if not auth_code:
        return ''
    client_secret_file = '/etc/ostrich_conf/google_client_secret.json' 
    credentials = client.credentials_from_clientsecrets_and_code(
           client_secret_file,
           ['profile', 'email'],
           auth_code)
    http_auth = credentials.authorize(httplib2.Http())
    users_service = discovery.build('oauth2', 'v2', http=http_auth)
    user_document = users_service.userinfo().get().execute()

    #TODO check consistencies b/w session and user cache
    #from app import cache
    #cache_key = credentials.id_token['sub']
    #user = cache.get(cache_key)
    user = session.get('_user', None)
    if not user:
        user_data = {
            'username': user_document['email'],
            'name': user_document['name'],
            'email': user_document['email'],
            'google_id': credentials.id_token['sub'],
            'picture': user_document['picture'],
            'source': 'web'
            }

        user = User.createUser(user_data)
        WebUtils.storeUserSession(user, client=Utils.getParam(request.form, 'client', default=None))
        user = session['_user']

    visible_user_data = {'user': user}
    return jsonify(data=visible_user_data)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号