Skip to content

Commit 7a19aa6

Browse files
committed
增加 userbuf 接口
1 parent d3c1b0e commit 7a19aa6

File tree

4 files changed

+48
-5
lines changed

4 files changed

+48
-5
lines changed

README.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,14 @@
1-
# tls-sig-api-v2-python
1+
## pip 集成
2+
```shell
3+
pip install tls-sig-api-v2
4+
```
5+
6+
## 调用接口
7+
8+
``` python
9+
import TLSSigAPI
10+
11+
api = TLSSigAPI.TLSSigAPI(1400000000, '5bd2850fff3ecb11d7c805251c51ee463a25727bddc2385f3fa8bfee1bb93b5e')
12+
sig = api.gen_sig("xiaojun")
13+
print(sig)
14+
```

TLSSigAPI.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,19 @@ def __init__(self, sdkappid, key):
3939
self.__sdkappid = sdkappid
4040
self.__key = key
4141

42-
def __hmacsha256(self, identifier, curr_time, expire):
42+
def __hmacsha256(self, identifier, curr_time, expire, base64_userbuf=None):
4343
""" 通过固定串进行 hmac 然后 base64 得的 sig 字段的值"""
4444
raw_content_to_be_signed = "TLS.identifier:" + str(identifier) + "\n"\
4545
+ "TLS.sdkappid:" + str(self.__sdkappid) + "\n"\
4646
+ "TLS.time:" + str(curr_time) + "\n"\
4747
+ "TLS.expire:" + str(expire) + "\n"
48+
if None != base64_userbuf:
49+
raw_content_to_be_signed += "TLS.userbuf:" + base64_userbuf + "\n"
4850
return base64.b64encode(hmac.new(self.__key.encode('utf-8'),
4951
raw_content_to_be_signed.encode('utf-8'),
5052
hashlib.sha256).digest())
5153

52-
def gen_sig(self, identifier, expire=180*86400):
54+
def __gen_sig(self, identifier, expire=180*86400, userbuf=None):
5355
""" 用户可以采用默认的有效期生成 sig """
5456
curr_time = int(time.time())
5557
m = dict()
@@ -58,19 +60,34 @@ def gen_sig(self, identifier, expire=180*86400):
5860
m["TLS.sdkappid"] = int(self.__sdkappid)
5961
m["TLS.expire"] = int(expire)
6062
m["TLS.time"] = int(curr_time)
61-
m["TLS.sig"] = bytes.decode(self.__hmacsha256(identifier, curr_time, expire))
63+
base64_userbuf = None
64+
if None != userbuf:
65+
base64_userbuf = bytes.decode(base64.b64encode(userbuf))
66+
m["TLS.userbuf"] = base64_userbuf
67+
68+
m["TLS.sig"] = bytes.decode(self.__hmacsha256(
69+
identifier, curr_time, expire, base64_userbuf))
6270

6371
raw_sig = json.dumps(m)
64-
print(raw_sig)
6572
sig_cmpressed = zlib.compress(raw_sig.encode('utf-8'))
6673
base64_sig = base64_encode_url(sig_cmpressed)
6774
return base64_sig
6875

76+
def gen_sig(self, identifier, expire=180*86400):
77+
""" 用户可以采用默认的有效期生成 sig """
78+
return self.__gen_sig(identifier, expire, None)
79+
80+
def gen_sig_with_userbuf(self, identifier, expire, userbuf):
81+
""" 带 userbuf 生成签名 """
82+
return self.__gen_sig(identifier, expire, userbuf)
83+
6984

7085
def main():
7186
api = TLSSigAPI(1400000000, '5bd2850fff3ecb11d7c805251c51ee463a25727bddc2385f3fa8bfee1bb93b5e')
7287
sig = api.gen_sig("xiaojun")
7388
print(sig)
89+
sig = api.gen_sig_with_userbuf("xiaojun", 86400*180, "abc".encode("utf-8"))
90+
print(sig)
7491

7592

7693
if __name__ == "__main__":

__init__.py

Whitespace-only changes.

setup.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
from setuptools import setup, find_packages
2+
3+
setup (
4+
name='tls-sig-api-v2',
5+
version='1.0',
6+
packages=find_packages(),
7+
author_email='weijunyi@tencent.com',
8+
py_modules=[
9+
'TLSSigAPI'
10+
],
11+
url='https://github.com/tencentyun/tls-sig-api-v2-python',
12+
license='MIT'
13+
)

0 commit comments

Comments
 (0)