Example #1
0
def windows_live_login(request):
    action = request.POST.get('action')

    if not action:
        raise ValueError("'action' POST value is required.")

    wll = WindowsLiveLogin.initFromXml(settings.WINDOWS_LIVE_KEYFILE)

    if action == 'login':
        token = request.POST.get('stoken')
        if not token:
            raise ValueError(
                "'token' POST value is required when 'action' is 'login'.")

        os.environ['QUERY_STRING'] = 'action=%s&stoken=%s' % (action, token)
        fs = cgi.FieldStorage()
        user = wll.processLogin(fs)
        if user:
            request.session[
                settings.WINDOWS_LIVE_COOKIE_LOGIN] = user.getToken()
            return redirect(wll.getConsentUrl(settings.WINDOWS_LIVE_OFFERS))

    elif action == 'delauth':
        user = None
        token = request.session[settings.WINDOWS_LIVE_COOKIE_LOGIN]
        if not token:
            raise ValueError(
                "'token' session value is required when 'action' is 'delauth'."
            )

        user = wll.processToken(token)
        if user:
            response_code = request.POST.get('ResponseCode')
            consent_token = request.POST.get('ConsentToken')
            os.environ[
                'QUERY_STRING'] = 'action=%s&ResponseCode=%s&ConsentToken=%s' % (
                    action, response_code, consent_token)
            fs = cgi.FieldStorage()
            consent = wll.processConsent(fs)
            if consent and consent.isValid():
                request.session[
                    settings.WINDOWS_LIVE_COOKIE_CONSENT] = consent.getToken()
                return redirect(
                    request.session.get('windows_live_contacts_redirect'))

    raise ValueError(
        "'action' POST value must be either 'login' or 'delauth'.")
def windows_live_login(request):
    action = request.POST.get('action')
    
    if not action:
        raise ValueError("'action' POST value is required.")
    
    wll = WindowsLiveLogin.initFromXml(settings.WINDOWS_LIVE_KEYFILE)
    
    if action == 'login':
        token = request.POST.get('stoken')
        if not token:
            raise ValueError("'token' POST value is required when 'action' is 'login'.")
        
        os.environ['QUERY_STRING'] = 'action=%s&stoken=%s' % (action, token)
        fs = cgi.FieldStorage()
        user = wll.processLogin(fs)
        if user:
            request.session[settings.WINDOWS_LIVE_COOKIE_LOGIN] = user.getToken()
            return redirect(wll.getConsentUrl(settings.WINDOWS_LIVE_OFFERS))
        
    elif action == 'delauth':
        user = None
        token = request.session[settings.WINDOWS_LIVE_COOKIE_LOGIN]
        if not token:
            raise ValueError("'token' session value is required when 'action' is 'delauth'.")
        
        user = wll.processToken(token)
        if user:
            response_code = request.POST.get('ResponseCode')
            consent_token = request.POST.get('ConsentToken')
            os.environ['QUERY_STRING'] = 'action=%s&ResponseCode=%s&ConsentToken=%s' % (action, response_code, consent_token)
            fs = cgi.FieldStorage()
            consent = wll.processConsent(fs)
            if consent and consent.isValid():
                request.session[settings.WINDOWS_LIVE_COOKIE_CONSENT] = consent.getToken()
                return redirect(request.session.get('windows_live_contacts_redirect'))
    
    raise ValueError("'action' POST value must be either 'login' or 'delauth'.")
Example #3
0
def get_window_live_login():
    wll = WindowsLiveLogin.initFromXml(settings_webauth.KEYFILE)
    wll.setDebug(settings_webauth.DEBUG)
    return wll