Viewing File: /opt/alt/python35/lib/python3.5/site-packages/jwt/__pycache__/api_jwt.cpython-35.pyc



b'[@s_ddlZddlZddlmZddlmZmZddlmZmZy,ddl	m
Z
mZmZm
Z
mZWnek
rYnXddlmZddlmZmZdd	lmZdd
lmZmZmZmZmZmZmZddlm Z Gdd
d
eZ!e!Z"e"j#Z#e"j$Z$e"j%Z%e"j&Z&e"j'Z'dS)N)timegm)IterableMapping)datetime	timedelta)CallableDictListOptionalUnion)PyJWS)	Algorithmget_default_algorithms)string_types)DecodeErrorExpiredSignatureErrorImmatureSignatureErrorInvalidAudienceErrorInvalidIssuedAtErrorInvalidIssuerErrorMissingRequiredClaimError)
merge_dictcseZdZdZeddZdddfddZdd	ddfd
dZdddd
dZddZ	ddZ
ddZddZddZ
ddZS)PyJWTZJWTcCs:dddddddddddddd	d
d	dd	i	S)Nverify_signatureT
verify_exp
verify_nbf
verify_iat
verify_aud
verify_issrequire_expFrequire_iatrequire_nbfr#r#r#/api_jwt.py_get_default_optionsszPyJWT._get_default_optionsZHS256Ncst|tstdxIdddgD]8}t|j|tr+t||j||<q+Wtj|dd
d|j	d	}t
t|j	|||||S)NzJExpecting a mapping object, as JWT only supports JSON objects as payloads.expiatnbfZ
separators,:clszutf-8)r)r*)
isinstancer	TypeErrorgetrrutctimetuplejsondumpsencodesuperr)selfpayloadkey	algorithmZheadersZjson_encoderZ
time_claimZjson_payload)	__class__r#r$r2)s		zPyJWT.encodeTcs6|r%|r%tjdddt|j|\}}}}|dkr[d|i}n|jd|tt|j|d|d|d||}	ytj	|	jd}Wn5t
k
r}
ztd	|
WYdd}
~
XnXt|t
std
|r2t|j|}|j||||S)Nz.It is strongly recommended that you pass in a z;value for the "algorithms" argument when calling decode(). z4This argument will be mandatory in a future version.rr6
algorithmsoptionszutf-8zInvalid payload string: %sz-Invalid payload string: must be a json object)warningswarnDeprecationWarning_load
setdefaultr3rdecoder0loads
ValueErrorrr,rrr;_validate_claims)r4Zjwtr6Zverifyr:r;kwargsr5_ZdecodedeZmerged_options)r8r#r$rAEs*
#zPyJWT.decodercKskd|kr2|jdd|d<tjdtt|trM|j}t|ttdt	fswt
d|j||tt
jj}d|kr|jdr|j|||d|kr|jd	r|j|||d
|kr)|jdr)|j||||jdrH|j|||jdrg|j||dS)
NZverify_expirationTrzXThe verify_expiration parameter is deprecated. Please use verify_exp in options instead.z,audience must be a string, iterable, or Noner'rr(rr&rr)r.r<r=r>r,rZ
total_secondsrtyperr-_validate_required_claimsrrZutcnowr/
_validate_iat
_validate_nbf
_validate_exp
_validate_iss
_validate_aud)r4r5r;audienceissuerleewayrEnowr#r#r$rDms(	zPyJWT._validate_claimscCs|jdr0|jddkr0td|jdr`|jddkr`td|jdr|jddkrtddS)Nr r&r!r'r"r()r.r)r4r5r;r#r#r$rIs$$$zPyJWT._validate_required_claimscCs7yt|dWntk
r2tdYnXdS)Nr'z)Issued At claim (iat) must be an integer.)intrCr)r4r5rRrQr#r#r$rJs
zPyJWT._validate_iatcCsUyt|d}Wntk
r4tdYnX|||krQtddS)Nr(z*Not Before claim (nbf) must be an integer.z The token is not yet valid (nbf))rSrCrr)r4r5rRrQr(r#r#r$rKs
zPyJWT._validate_nbfcCsUyt|d}Wntk
r4tdYnX|||krQtddS)Nr&z/Expiration Time claim (exp) must be an integer.zSignature has expired)rSrCrr)r4r5rRrQr&r#r#r$rLs
zPyJWT._validate_expcs
|dkrd|krdS|dk	r@d|kr@td|dkrdd|krdtd|dttrgttstdtddDrtdt|tr|g}tfdd|Ds	tddS)NaudzInvalid audiencezInvalid claim format in tokencss|]}t|tVqdS)N)r,r).0cr#r#r$	<genexpr>sz&PyJWT._validate_aud.<locals>.<genexpr>c3s|]}|kVqdS)Nr#)rUrT)audience_claimsr#r$rWs)rrr,rlistany)r4r5rOr#)rXr$rNs"
		zPyJWT._validate_audcCsH|dkrdSd|kr(td|d|krDtddS)NZisszInvalid issuer)rr)r4r5rPr#r#r$rMszPyJWT._validate_iss)__name__
__module____qualname__Zheader_typestaticmethodr%r2rArDrIrJrKrLrNrMr#r#)r8r$rs"#!
	
r)(r0r<ZcalendarrcollectionsrrrrZtypingrrr	r
rImportErrorZapi_jwsr
r:rrcompatr
exceptionsrrrrrrrZutilsrrZ_jwt_global_objr2rAZregister_algorithmZunregister_algorithmZget_unverified_headerr#r#r#r$<module>s(,
4					
Back to Directory File Manager