示例#1
0
def login_sso(request):
    eve_sso = EvESSO(request)
    if eve_sso.has_valid_state() is False:
        return HttpResponseBadRequest('Could not authenticate, incorrect state parameter received')

    if eve_sso.verify_auth_code() is False:
        return HttpResponseBadRequest('EvE Auth Token could not be verified, please try again.')

    char_info = eve_sso.obtain_char_info()
    if char_info is False:
        return HttpResponseBadRequest('A problem occurred, while verifying your barer token.')

    if 'CharacterID' not in char_info:
        return HttpResponseBadRequest('No valid Character info could be found.')

    character_id = unicode(char_info['CharacterID'])
    character_name = char_info['CharacterName']
    character_owner_hash = char_info['CharacterOwnerHash']

    user = authenticate(character_id=character_id, character_name=character_name, character_owner_hash=character_owner_hash)
    if user is not None:
        if user.is_active:
            logger.info("Successful login attempt from user %s" % user)
            login(request, user)
            return HttpResponseRedirect(request.session.get(NEXT_KEY, DEFAULT_REDIRECT))
        else:
            logger.info("Login attempt failed for user %s: user marked inactive." % user)
    else:
        logger.info("Failed login attempt: provided character_id %s" % character_id)

    return HttpResponseForbidden('There is currently no account with your character %s connected.' % character_name)
示例#2
0
def redirect_to_sso(request):
    eve_sso = EvESSO(request)
    eve_sso_redirect_uri = eve_sso.generate_redirect_uri(eve_sso.generate_state())
    request.session[NEXT_KEY] = request.GET.get('next', DEFAULT_REDIRECT)
    if eve_sso_redirect_uri is not None:
        return HttpResponseRedirect(eve_sso_redirect_uri)

    return HttpResponseBadRequest('Could not process sso request.')
示例#3
0
def redirect_to_sso(request):
    eve_sso = EvESSO(request)
    eve_sso_redirect_uri = eve_sso.generate_redirect_uri(
        eve_sso.generate_state())
    request.session[NEXT_KEY] = request.GET.get('next', DEFAULT_REDIRECT)
    if eve_sso_redirect_uri is not None:
        return HttpResponseRedirect(eve_sso_redirect_uri)

    return HttpResponseBadRequest('Could not process sso request.')
示例#4
0
def login_sso(request):
    eve_sso = EvESSO(request)
    if eve_sso.has_valid_state() is False:
        return HttpResponseBadRequest(
            'Could not authenticate, incorrect state parameter received')

    if eve_sso.verify_auth_code() is False:
        return HttpResponseBadRequest(
            'EvE Auth Token could not be verified, please try again.')

    char_info = eve_sso.obtain_char_info()
    if char_info is False:
        return HttpResponseBadRequest(
            'A problem occurred, while verifying your barer token.')

    if 'CharacterID' not in char_info:
        return HttpResponseBadRequest(
            'No valid Character info could be found.')

    character_id = unicode(char_info['CharacterID'])
    character_name = char_info['CharacterName']
    character_owner_hash = char_info['CharacterOwnerHash']

    user = authenticate(character_id=character_id,
                        character_name=character_name,
                        character_owner_hash=character_owner_hash)
    if user is not None:
        if user.is_active:
            logger.info("Successful login attempt from user %s" % user)
            login(request, user)
            return HttpResponseRedirect(
                request.session.get(NEXT_KEY, DEFAULT_REDIRECT))
        else:
            logger.info(
                "Login attempt failed for user %s: user marked inactive." %
                user)
    else:
        logger.info("Failed login attempt: provided character_id %s" %
                    character_id)

    return HttpResponseForbidden(
        'There is currently no account with your character %s connected.' %
        character_name)