def login(request): auth_url = create_authorize_url() error = None if request.GET: if 'code' in request.GET: logging.debug('CODE FOUND') session = FacebookSession(request.GET['code']) user = auth.authenticate(session=session) if user: if user.is_active: logging.debug('ACTIVE USER') auth.login(request, user) return redirect(settings.MAIN_URL) else: error = 'AUTH_DISABLED' else: error = 'AUTH_FAILED' elif 'error_reason' in request.GET: error = 'AUTH_DENIED' elif request.user.is_authenticated(): logging.debug('AUTHORIZED USER') return redirect(settings.MAIN_URL) template_context = {'error': error, 'auth_url': auth_url} return render_to_response('login.html', template_context, context_instance=Context(request))
def wrap(request, *args, **kwargs): authorize_url = create_authorize_url() timeout = 60 try: token = Token.objects.get(user=request.user) except Exception, e: logging.error(e) return redirect(urlresolvers.reverse('login'))
def wrap(request, *args, **kwargs): refresh_token_url = create_authorize_url(state=request.path) timeout = 60 fb_token = request.session.get('fb_token') if not fb_token: logging.info(u'Facebook token not found. Will redirect to login') login_url = '/login?next={0}'.format(request.path) return redirect(login_url) timestamp_now = time.mktime(datetime.datetime.utcnow().timetuple()) if fb_token['expires'] < timestamp_now + timeout: logging.warn('Token expired. Trying to fetch a new one.') return redirect(refresh_token_url) request.access_token = fb_token['access_token'] try: return func(request, *args, **kwargs) except FacebookSessionError, e: logging.error(str(e)) return redirect(refresh_token_url)
def login(request): next_url = request.GET.get('next') state_url = request.GET.get('state') if not next_url or next_url == 'None': if state_url: next_url = state_url else: next_url = settings.MAIN_URL error = None if request.GET: if 'code' in request.GET: logging.debug('CODE FOUND') facebook_session = FacebookSession(request.GET['code']) user = auth.authenticate(facebook_session=facebook_session, django_session=request.session, user=request.user or None) if user: if user.is_active: logging.debug('ACTIVE USER') auth.login(request, user) return redirect(next_url) else: logging.error('User is not active.') error = 'AUTH_DISABLED' else: logging.error('User does not exists.') error = 'AUTH_FAILED' elif 'error_reason' in request.GET: logging.error('Facebook authentication failed.') error = 'AUTH_DENIED' elif request.user.is_authenticated(): logging.debug('AUTHORIZED USER') return redirect(next_url) auth_url = utils.create_authorize_url(state=next_url) template_context = {'error': error, 'auth_url': auth_url} return render_to_response('login.html', template_context, context_instance=RequestContext(request))