Files
hms-licht-ton/backend/app/__pycache__/auth.cpython-313.pyc
T

26 lines
3.9 KiB
Plaintext
Raw Normal View History

ó
ÞNj
ãó>•SrSSKJrJrJr SSKJr SSKJrJr SSK J
r
SSK J r J
r
JrJr SSKJr SSKJr SS KJr SS
KJr SS KJr \"5r\
"S /S
S9rS\S\S\4SjrS\S\4SjrSS\ S\S-S\4Sjjr!S\S\ S-4Sjr"\ "\54S\S\S\4Sjjr#g)zJWT authentication helpers.é)ÚdatetimeÚ timedeltaÚtimezone)ÚOptional)ÚJWTErrorÚjwt)Ú CryptContext)ÚDependsÚ
HTTPExceptionÚstatusÚRequest)Ú AsyncSession)Úselect)Ú get_settings)Úget_db)Ú AdminUserÚbcryptÚauto)ÚschemesÚ
deprecatedÚplain_passwordÚhashed_passwordÚreturncó,•[RX5$)z'Verify a plain password against a hash.)Ú pwd_contextÚverify)rrs Ú5/a0/usr/workdir/hms-licht-ton-t04/backend/app/auth.pyÚverify_passwordrs€ä × Ñ ˜nÓ >Ð>óÚpasswordcó,•[RU5$)zHash a password using bcrypt.)rÚhash)r s rÚget_password_hashr#s€ä × Ñ ˜HÓ %Ð%rNÚdataÚ
expires_deltacó6•UR5n[R"[R5U=(d [ [ RS9-nURSU05 [R"U[ R[ RS9$)zCreate a JWT access token.)ÚhoursÚexp)Ú algorithm)
ÚcopyrÚnowrÚutcrÚsettingsÚjwt_expire_hoursÚupdaterÚencodeÚ
jwt_secretÚ
jwt_algorithm)r$r%Ú to_encodeÚexpires rÚcreate_access_tokenr5sj€à— ‘ “ €IÜ
�\Š\œ(Ÿ,™,Ó
'Ø×Cœ¬×)BÑ)BÑCñ€Fð×Ñ�e˜V�_Ô%Ü �:Š:�i¤×!4Ñ!4Ä×@VÑ@VÑ WÐWrÚtokencóŽ•[R"U[R[R/S9nU$![
a gf=f)z*Verify a JWT token and return its payload.)Ú
algorithmsN)rÚdecoder-r1r2r)r6Úpayloads rÚ verify_tokenr;&s?€ðÜ—*’*˜U¤H×$7Ñ$7ÄX×E[ÑE[ÐD\Ñ]ˆØˆøÜ óÙðús‚47·
AÁAÚrequestÚdbcƒó$# •URRS5nU(d[[RSS9e[ U5nU(d[[RSS9eURS5nU(d[[RSS9eUR
[[5R[RU:H55IShv•N nUR5nU(d[[RSS9eU$N57f) z>Dependency: extract JWT from cookie, verify, return AdminUser.Úhms_admin_tokenzNot authenticated)Ú status_codeÚdetailzInvalid or expired tokenÚsubzInvalid token payloadNzUser not found) ÚcookiesÚgetr r ÚHTTP_401_UNAUTHORIZEDr;ÚexecuterrÚwhereÚusernameÚscalar_one_or_none)r<r=r6r:rHÚresultÚusers rÚget_current_userrL/sñé€ð
�O‰O× Ñ Ð 1Ó 2€EÞ ÜÜ×4Ñ4Ø&ñ
ð