Example #1
0
def social_login():
    json = request.json

    social_id = json.get('socialId')
    email = json.get('email')

    token = json.get('token')
    platform = json.get('platform')

    fir_token = json.get('firToken')

    registered_user = User.get_by_social_id(social_id)
    if registered_user is None:

        if platform == "FB":
            json = fb_info(social_id, token)
        else:
            json = vk_info(social_id, token)

        if json is None:
            raise ApiError(u"Произошла ошибка авторизации")

        image_url = json.get('image_url')
        first_name = json.get("first_name")
        last_name = json.get("last_name")
        if email is None or len(email) == 0:
            email = json.get('email')

        print(image_url)

        user = User(social_id=social_id,
                    email=email,
                    name=first_name,
                    last_name=last_name,
                    image_url=image_url,
                    fir_token=fir_token)

        session.add(user)
        session.commit()

        login_user(user)

        return jsonify(user.serialize)

    registered_user.fir_token = fir_token
    login_user(registered_user)

    return jsonify(registered_user.serialize)