一、客户端
(一)登录获取token
(二)超时后报token过期
登录超时,路由从定向到登录页
二、服务端
(一) 登录接口颁发token
(二)每个请求接口前,进行鉴权校验
1.鉴权
2.接口
Python
import jwt
# jwt密钥
JWT_SECRET = '04147af1e42c20c3b50bdc111774346e'
# 编码
def encode(payload):
return jwt.encode(payload, JWT_SECRET, algorithm='HS256')
# 解码
def decode(string):
return jwt.decode(string, JWT_SECRET, algorithms=['HS256'])
# jwt 内数据(可自定义,一般放用户信息)
payload = {
"nickname": "管理员",
"userName": "admin",
"exp": 9743118683,
"userId": "2"
}
print(encode(payload))
decode函数的15个代码示例
这些例子默认根据受欢迎程度排序
示例1: test_certs_dict
def test_certs_dict(self):
jwt.decode(
firebase_token,
firebase_certs,
algorithms='RS256',
options={'verify_exp': False, 'verify_aud': False}
)
项目名称:python-jose,代码行数:7,代码来源:test_firebase.py
示例2: test_individual_cert
def test_individual_cert(self):
jwt.decode(
firebase_token,
firebase_certs["f4b0a5c73ad85a5da09f0e7f76463631339e0bbf"],
algorithms='RS256',
options={'verify_exp': False, 'verify_aud': False}
)
项目名称:python-jose,代码行数:7,代码来源:test_firebase.py
示例3: test_certs_string
def test_certs_string(self):
certs = json.dumps(firebase_certs)
jwt.decode(
firebase_token,
certs,
algorithms='RS256',
options={'verify_exp': False, 'verify_aud': False}
)
项目名称:python-jose,代码行数:8,代码来源:test_firebase.py
示例4: test_iss_tuple
def test_iss_tuple(self, key):
iss = 'issuer'
claims = {
'iss': iss
}
token = jwt.encode(claims, key)
jwt.decode(token, key, issuer=('https://issuer', 'issuer'))
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例5: test_iss_list
def test_iss_list(self, key):
iss = 'issuer'
claims = {
'iss': iss
}
token = jwt.encode(claims, key)
jwt.decode(token, key, issuer=['https://issuer', 'issuer'])
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例6: test_sub_correct
def test_sub_correct(self, key):
sub = 'subject'
claims = {
'sub': sub
}
token = jwt.encode(claims, key)
jwt.decode(token, key, subject=sub)
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例7: test_aud_string
def test_aud_string(self, key):
aud = 'audience'
claims = {
'aud': aud
}
token = jwt.encode(claims, key)
jwt.decode(token, key, audience=aud)
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例8: test_iat_not_int
def test_iat_not_int(self, key):
claims = {
'iat': 'test'
}
token = jwt.encode(claims, key)
with pytest.raises(JWTError):
jwt.decode(token, key)
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例9: test_aud_list_multiple
▲ 点赞 1 ▼
def test_aud_list_multiple(self, key):
aud = 'audience'
claims = {
'aud': [aud, 'another']
}
token = jwt.encode(claims, key)
jwt.decode(token, key, audience=aud)
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例10: test_iss_string
def test_iss_string(self, key):
iss = 'issuer'
claims = {
'iss': iss
}
token = jwt.encode(claims, key)
jwt.decode(token, key, issuer=iss)
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例11: test_nbf_datetime
def test_nbf_datetime(self, key):
nbf = datetime.utcnow() - timedelta(seconds=5)
claims = {
'nbf': nbf
}
token = jwt.encode(claims, key)
jwt.decode(token, key)
开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例12: test_exp_datetime
def test_exp_datetime(self, key):
exp = datetime.utcnow() + timedelta(seconds=5)
claims = {
'exp': exp
}
token = jwt.encode(claims, key)
jwt.decode(token, key)
开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例13: test_sub_string
def test_sub_string(self, key):
sub = 'subject'
claims = {
'sub': sub
}
token = jwt.encode(claims, key)
jwt.decode(token, key)
开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例14: test_jti_string
def test_jti_string(self, key):
jti = 'JWT ID'
claims = {
'jti': jti
}
token = jwt.encode(claims, key)
jwt.decode(token, key)
开发者ID:0x64746b,项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
示例15: test_aud_list
def test_aud_list(self, key):
aud = 'audience'
claims = {
'aud': [aud]
}
token = jwt.encode(claims, key)
jwt.decode(token, key, audience=aud)
项目名称:python-jose,代码行数:10,代码来源:test_jwt.py
参考: