Example #1
0
def verify_basic_token(token):
    try:
        client = base64.b64decode(token)
        client_id, secret = smart_str(client).split(':')
    except (TypeError, ValueError):
        return False, None
    return verify_client(client_id, secret)
Example #2
0
def params_filter(params, delimiter='&', charset='utf-8',
                  excludes=['sign', 'sign_type']):
    ks = params.keys()
    ks.sort()
    newparams = {}
    prestr = ''
    if params.get('input_charset', None):
        charset = params['input_charset']
    for k in ks:
        v = params[k]
        k = smart_str(k, charset)
        if k not in excludes and v != '':
            newparams[k] = smart_str(v, charset)
            prestr += '%s=%s%s' % (k, newparams[k], delimiter)
    prestr = prestr[:-1]
    return newparams, prestr
Example #3
0
def params_filter(params, delimiter='&', charset='utf-8',
                  excludes=['sign', 'sign_type']):
    if six.PY3:
        ks = sorted(params)
    else:
        ks = params.keys()
        ks.sort()
    newparams = {}
    prestr = ''
    if params.get('input_charset', None):
        charset = params['input_charset']
    for k in ks:
        v = params[k]
        k = smart_str(k, charset)
        if k not in excludes and v != '':
            newparams[k] = smart_str(v, charset)
            prestr += '%s=%s%s' % (k, newparams[k], delimiter)
    prestr = prestr[:-1]
    return newparams, prestr
Example #4
0
 def prepare_request(self, method, path, params):
     kwargs = {}
     _params = self.get_base_params()
     params.update(_params)
     newparams, prestr = params_filter(params)
     sign = build_mysign(prestr, key=self.partner_key)
     # 将内容转化为unicode xmltodict 只支持unicode
     newparams = params_encoding(newparams)
     newparams['sign'] = sign
     xml_dict = {'xml': newparams}
     kwargs['data'] = smart_str(xmltodict.unparse(xml_dict))
     url = self._full_url(path)
     if self.mch_cert and self.mch_key:
         kwargs['cert'] = (self.mch_cert, self.mch_key)
     return method, url, kwargs
Example #5
0
 def prepare_request(self, method, path, params):
     kwargs = {}
     _params = self.get_base_params()
     params.update(_params)
     newparams, prestr = params_filter(params)
     sign = build_mysign(prestr, key=self.partner_key)
     # 将内容转化为unicode xmltodict 只支持unicode
     newparams = params_encoding(newparams)
     newparams['sign'] = sign
     xml_dict = {'xml': newparams}
     kwargs['data'] = smart_str(xmltodict.unparse(xml_dict))
     url = self._full_url(path)
     if self.mch_cert and self.mch_key:
         kwargs['cert'] = (self.mch_cert, self.mch_key)
     return method, url, kwargs
Example #6
0
def verify_client(client_id, secret):
    client = OAuth2Client.get(client_id=smart_str(client_id),
                              secret=smart_str(secret))
    if client:
        return True, client.get('scopes', [])
    return False, []
Example #7
0
 def __getattribute__(self, name):
     if name == 'id':
         id = super(Test, self).__getattribute__(name)
         return smart_str(id)
     return super(Test, self).__getattribute__(name)