def get_login_temporary_link(user_id, email): user = AnonymousUser() user.id = user_id args = { 'user': user, 'email': email, 'time': time(), } args['mac'] = get_verification_hmac(**args) args['user'] = str(user_id) return reverse_qs('login_via_email', args)
def __call__(self, request): is_anon = request.META.get('HTTP_X_ANONYMOUS_CONSUMER', False) == 'true' user = AnonymousUser() if not is_anon: user_id = request.META.get('HTTP_X_AUTHENTICATED_USERID', False) user = User() user.id = user_id user.username = user_id request.user = user response = self.get_response(request) return response
def __call__(self, request): not_anonomous_user = request.META.get('HTTP_X_ANONYMOUS_CONSUMER', True) == 'false' user = AnonymousUser() if not_anonomous_user: user_id = request.META.get('HTTP_X_AUTHENTICATED_USERID', False) user = get_user_model()() user.id = user_id user.username = user_id user.first_name = user_id user.last_name = user_id request.user = user response = self.get_response(request) return response
def get_email_login_userid(request): user = AnonymousUser() user.id = request.GET.get('user', 0) args = { 'user': user, 'time': request.GET.get('time', 0), 'email': request.GET.get('email', '') } mac = request.GET.get('mac', '') try: if time() - float(args['time']) > 900: raise ValueError('too late') if mac != get_verification_hmac(**args): raise ValueError('bad mac') user_id = int(user.id) except (TypeError, ValueError): return None return user_id
def get_user(request): """ Return the user model instance associated with the given request session. If no user is retrieved, return an instance of `AnonymousUser`. """ user = AnonymousUser() token = request.META.get('HTTP_AUTHORIZATION') if not token: return (user, 'token不存在', 400, ResCode.Token_Missing) start = time.time() try: result = requests.get(settings.SSO_VERIFY, verify=False, headers={'Authorization': token}) status_code = result.status_code result = result.json() except Exception as ex: logger.error('SSO登录授权验证失败:' + str(ex)) return (user, '服务器异常,登录授权验证失败', 500, ResCode.Token_Missing) end = time.time() logger.debug('sso verify time:{} ms'.format((end - start) * 1000)) rescode = result.get('rescode') if rescode == res_code['success']: user_data = result.get('data') user = User() user.id = user_data.get('id') user.username = user_data.get('username') user.mobile = user_data.get('mobile') user.email = user_data.get('email') user.user_type = user_data.get('user_type') user.is_subuser = user_data.get('is_subuser') user.main_user_id = user_data.get('main_user_id') user.permissions = user_data.get('permissions') return (user, result.get('msg'), status_code, rescode)