Viewing File: /opt/alt/python38/lib/python3.8/site-packages/jwt/__pycache__/api_jwt.cpython-38.pyc

U

E`@sddlZddlmZddlmZmZddlmZmZddlm	Z	m
Z
mZmZm
Z
mZddlmZddlmZmZmZmZmZmZmZGd	d
d
ZeZejZejZejZdS)N)timegm)IterableMapping)datetime	timedelta)AnyDictListOptionalTypeUnion)api_jws)DecodeErrorExpiredSignatureErrorImmatureSignatureErrorInvalidAudienceErrorInvalidIssuedAtErrorInvalidIssuerErrorMissingRequiredClaimErrorc@seZdZd ddZeeeeee	effdddZ
d!eeefeeeeee
ejedd	d
Zd"eee	eeeeefdd
dZd#eee	eeeeefdddZd$ddZddZddZddZddZddZddZdS)%PyJWTNcCs|dkri}|||_dSN)_get_default_optionsoptions)selfrr</opt/alt/python38/lib/python3.8/site-packages/jwt/api_jwt.py__init__szPyJWT.__init__)returncCsddddddgdS)NT)verify_signature
verify_exp
verify_nbf
verify_iat
verify_aud
verify_issrequirerrrrrrszPyJWT._get_default_optionsHS256)payloadkey	algorithmheadersjson_encoderrcCspt|tstd|}dD](}t||trt||||<qtj	|d|d
d}t
|||||S)NzJExpecting a mapping object, as JWT only supports JSON objects as payloads.)expiatnbf),:)Z
separatorsclszutf-8)
isinstancer	TypeErrorcopygetrrutctimetuplejsondumpsencoder)rr'r(r)r*r+Z
time_claimZjson_payloadrrrr9%s 	
zPyJWT.encode)jwtr(
algorithmsrrc

Ks
|dkrddi}n|dd|dsb|dd|dd|dd|dd|dd|drv|svtd	tj|f|||d
|}zt|d}Wn.tk
r}ztd|W5d}~XYnXt|tstd
|j	|}	|j
||	f|||d<|S)NrTr Fr!r"r#r$z\It is required that you pass in a value for the "algorithms" argument when calling decode().)r(r<rr'zInvalid payload string: %sz-Invalid payload string: must be a json object)
setdefaultrrdecode_completer7loads
ValueErrorr2dictr_validate_claims)
rr;r(r<rkwargsdecodedr'eZmerged_optionsrrrr>As@


zPyJWT.decode_completecKs|j||||f|}|dS)Nr')r>)rr;r(r<rrCrDrrrdecodeoszPyJWT.decodercKst|tr|}t|tttdtfs0td|||t	t
}d|krj|drj|
|||d|kr|dr||||d|kr|dr|||||dr||||d	r|||dS)
Nz,audience must be a string, iterable, or Noner-r"r.r!r,r r$r#)r2rZ
total_secondsbytesstrtyperr3_validate_required_claimsrrZutcnowr6
_validate_iat
_validate_nbf
_validate_exp
_validate_iss
_validate_aud)rr'raudienceissuerleewayrCnowrrrrBzs 
zPyJWT._validate_claimscCs(|dD]}||dkrt|qdS)Nr%)r5r)rr'rZclaimrrrrJszPyJWT._validate_required_claimscCs2zt|dWntk
r,tdYnXdS)Nr-z)Issued At claim (iat) must be an integer.)intr@r)rr'rSrRrrrrKszPyJWT._validate_iatcCsFzt|d}Wntk
r,tdYnX|||krBtddS)Nr.z*Not Before claim (nbf) must be an integer.z The token is not yet valid (nbf))rTr@rr)rr'rSrRr.rrrrLszPyJWT._validate_nbfcCsFzt|d}Wntk
r,tdYnX|||krBtddS)Nr,z/Expiration Time claim (exp) must be an integer.zSignature has expired)rTr@rr)rr'rSrRr,rrrrMszPyJWT._validate_expcs|dkrd|krdS|dk	r,d|kr,td|dkrDd|krDtd|dttr\gttsntdtddDrtdt|tr|g}tfdd|DstddS)NaudzInvalid audiencezInvalid claim format in tokencss|]}t|tVqdSr)r2rH).0crrr	<genexpr>sz&PyJWT._validate_aud.<locals>.<genexpr>c3s|]}|kVqdSrr)rVrUZaudience_claimsrrrXs)rrr2rHlistany)rr'rPrrYrrOs"


zPyJWT._validate_audcCs4|dkrdSd|krtd|d|kr0tddS)NZisszInvalid issuer)rr)rr'rQrrrrNszPyJWT._validate_iss)N)r&NN)r:NN)r:NN)NNr)__name__
__module____qualname__rstaticmethodrrHrboolr	rrr
rr7ZJSONEncoderr9r>rFrBrJrKrLrMrOrNrrrrrsX
$

1

		r)r7ZcalendarrZcollections.abcrrrrtypingrrr	r
rrr:r
exceptionsrrrrrrrrZ_jwt_global_objr9r>rFrrrr<module>s $I
Back to Directory File Manager