def callback()

in django_airavata/apps/auth/views.py [0:0]


def callback(request):
    try:
        login_desktop = request.GET.get('login_desktop', "false") == "true"
        idp_alias = request.GET.get('idp_alias')
        user = authenticate(request=request, idp_alias=idp_alias)

        if user is not None:
            login(request, user)
            if login_desktop:
                download_code = request.GET.get('download-code', 'false') == "true"
                show_code = request.GET.get('show-code', 'false') == "true"
                return _create_login_desktop_success_response(request, download_code=download_code, show_code=show_code)
            next_url = request.GET.get('next', settings.LOGIN_REDIRECT_URL)
            return redirect(next_url)
        else:
            raise Exception("Failed to authenticate user")
    except Exception as err:
        logger.exception("An error occurred while processing OAuth2 "
                         "callback: {}".format(request.build_absolute_uri()),
                         extra={'request': request})
        messages.error(
            request,
            "Failed to process OAuth2 callback: {}".format(str(err)))
        if login_desktop:
            return _create_login_desktop_failed_response(
                request, idp_alias=idp_alias)
        return redirect(reverse('django_airavata_auth:callback-error',
                                args=(idp_alias,)))