Example #1
0
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)
Example #2
0
    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
Example #3
0
    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
Example #4
0
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
Example #5
0
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)