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)
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.')
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.')
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)