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'.")
def get_window_live_login(): wll = WindowsLiveLogin.initFromXml(settings_webauth.KEYFILE) wll.setDebug(settings_webauth.DEBUG) return wll