From 4a3f7bf5d013ad0d3ffd8bf5cf9212b31d773009 Mon Sep 17 00:00:00 2001 From: BINGWU Date: Wed, 27 Mar 2024 09:29:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5jwt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/settings.cpython-311.pyc | Bin 2693 -> 2761 bytes serve/serve/__pycache__/urls.cpython-311.pyc | Bin 1211 -> 1213 bytes serve/serve/settings.py | 2 ++ serve/serve/urls.py | 1 + .../utils/__pycache__/pyjwt.cpython-311.pyc | Bin 0 -> 1701 bytes serve/serve/utils/decode.py | 7 ---- serve/serve/utils/getToken.py | 14 -------- serve/serve/utils/pyjwt.py | 33 ++++++++++++++++++ .../views/__pycache__/user.cpython-311.pyc | Bin 4023 -> 5318 bytes serve/serve/views/user.py | 28 +++++++++++++++ 10 files changed, 64 insertions(+), 21 deletions(-) create mode 100644 serve/serve/utils/__pycache__/pyjwt.cpython-311.pyc delete mode 100644 serve/serve/utils/decode.py delete mode 100644 serve/serve/utils/getToken.py create mode 100644 serve/serve/utils/pyjwt.py diff --git a/serve/serve/__pycache__/settings.cpython-311.pyc b/serve/serve/__pycache__/settings.cpython-311.pyc index 76997abcc66d15a2ede2edd35b941557366194ab..386d82ea1acf8622d37ade349abb0587000f853a 100644 GIT binary patch delta 199 zcmZn_Jt@k!oR^o20SNx)GN;AyP2`hc6qu-f)gekSML0?*MI=QulMzUYfk|;NDUr#T z&Jrb@A{ix;A{8Z?!Vx6~#NsK^Q4%RKQIaXl!3>(Rn@t%1vIub%rzRJrmc(bLR^DRu z2sSb`+ibw*!N@2zxsrX49G_QsNPMuXbC7FDytixQEnX1c(Z}6C$TP&lcd`k`TP|Io k%NT*UIA*do=R2MUg0c;KHw45Rct5C2mgY)h(FV!^0NPVD761SM delta 131 zcmX>p+A7MooR^o20SHcaFs5DRoyaG_$T3mL?Jr*ghy`k*#Bo-2(-9Vh|-SO_3i diff --git a/serve/serve/__pycache__/urls.cpython-311.pyc b/serve/serve/__pycache__/urls.cpython-311.pyc index 6e1f1f256df9975b4ce1e0f136965b77bf7f28ee..088e50fcfc0665ccdb2f86b01eb4ba781ca30ced 100644 GIT binary patch delta 38 scmdnZxtEi7IWI340}#|?GpG4&G%bje(VOayyF&0IxR);Q#;t delta 36 qcmdnXxto)BIWI340}w3iU`+Gb$g9J`SUK5>#f$j?3&-S6783xZ_X!06 diff --git a/serve/serve/settings.py b/serve/serve/settings.py index 665101a..316e218 100644 --- a/serve/serve/settings.py +++ b/serve/serve/settings.py @@ -74,6 +74,8 @@ TEMPLATES = [ WSGI_APPLICATION = 'serve.wsgi.application' +JWT_SECRET_KEY = 'secret_key' # 应该是一个随机的复杂字符串,用于签名JWT +JWT_ALGORITHM = 'HS256' # JWT使用的算法 # Database # https://docs.djangoproject.com/en/5.0/ref/settings/#databases diff --git a/serve/serve/urls.py b/serve/serve/urls.py index f4b2577..82ac6ab 100644 --- a/serve/serve/urls.py +++ b/serve/serve/urls.py @@ -17,6 +17,7 @@ Including another URLconf from django.contrib import admin from django.urls import path from serve.views.index import initUrls + urlpatterns = [ path('admin/', admin.site.urls), ] diff --git a/serve/serve/utils/__pycache__/pyjwt.cpython-311.pyc b/serve/serve/utils/__pycache__/pyjwt.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..51ec8ba0e6fb66c0f1c48fbec614d7b0339d41db GIT binary patch literal 1701 zcma)6U1%It6u$GjKXJ2bYR%TfG7>G0n4kqEjiMBdNv%f6CX_6JW!QVOnK(boox4po zZZJq6BK1L}5FY|su&E`b)(4?a1s{YyPGBFFfq-CZ)3=2X2;zh1&hBg)tl*hDXYTpA z_nv#scjkI3l|(>)SERXHDG7P3(u*+O0rxGY+tE#)O!&dZ@J zS&FUZ)o?CbN?yTntX>lGF&w*u@^LKZke+zNx7EcUjtxebX_FwqIVKh}K;8Y}g{eYr z^u5W^slxfunIOgGvmcFpGI?%l{9|1Rj*l*tO-gXiEI9_NP%=uXODBRDCUZu`V#O$K zevSgK1n*t|Y#lKHK5bg)%r`-^6{!*9Yubc`o8l(;ZFPK?!Sa80siB&Hr413w8`6r% zV$qHWEkK@IR1;a4{g%X@iu4HGR5l^%EgpGDD-ugbbA)Qr(U>5sYGo4aNe$@XmGAys z`+8xK4Knvr;)J@9vOx`7t2ibrIEGC|9@kRWA_XXh(biG|S#?^%BOV|mJ?4?3>tK)9 zt>O{NHwhA*mAVv2WT_lTrojT4?*(fThE;N@$>wc6PWe>=wZe*yyGVHk0trG4RN@p} zOeoJeRYSGMs4fQyeo7cCO>uRsY*a1Rz(H4Q1unpHk8i~9yzjx}{gK%ZOpDC!{&e@@ zkC%6E-QB%)b@ssz*YDr?^8TI6v*jwAcby|fVwWwqO30w;%(>JynCUu$w&55hViSiA zdR31Rdln+ONZP!@Ov{74;Pjz#HAs~RS!tT9{95-taWQ6>sw@$E+*#7@QfX7{D2Uh^Ie@e5ZH^ zg#QO!q*-oBwR~}_U>^ThXc|4iO_`SIv2qT8x))xr3TzcM#e_2SAltW*{Qj+9y6=tM zJL6}kx3kmr?DSfyk?!~7{RcZ;S`&%N=|lE=rq@65nxB5%kGBWZuikPS;%+S#y1nYB z2mN?^G!?KN92|Jh!0BI{d;wkUKC4PU_W=7<5rFFgje|)~gx%HZs_qc1LmpwwbV}Y~ zV}+@rJUbyuDZkqdMEkgcU;nT8+qR1<7I}xB0+Hj%TLIRT1VLz^m;EP=1{(ICG#cn7 c|LAC-OH3O_7~Zwl_WH4yrxUOf425E&)WJ!iL856>z+|B&U<}3X0U6H%20vhS4Yfsz zD@B#nLj~GHK|(5#Dq5wNNE~|TrMmmZ(rGT5+RFPn9b5pIsn8P{%u;|M}*h zng2EOUHwmP*Vi0pqM(@)yl~NLuHXuy5F6(bW#O`fHEg9R4JGK2 zahs;7Z=tI#T#ihSsBi@`16CpnU=`v3t5F$X4YC5-U?qdfg^Fzrtc9*Ng{=@OFJUW% zs_oFL%2h)3CCb%8%_VG&U^~xF>%&)&W`uIvWDEV_Yi>=6n--*r*(GU0O3ew$QaKW$ zDI~mPcBbhkG<~>JsjZ`RZZMjYy^NjS-|;hVYd8-OB5}s)#4h;@{Y}~>|EzCmYy~Q< z2RO)Y9d3Mu9U!_5n1w%ljXsNZnIW11Oo(^C%(-69AEtMI8hLF&&ri9heu1 zkxr#y)dW>VF`*mg+GO6e4kr9&TB2!>9JXA$QVaBD9(``9_g*-iNrNjQb9{z+f&n6~ zY~K&`JMyoVEe8o#^t7H}K&;Y2fANHp-(@{W(!t=kA*1qc)hOb}^ z6s>_>HXv89RdlPo$JA2;c#j& zG9H=2zGyf-5}6ejhSiiSH%oUWlV)%iHxPIwov%|X7xT$Vf~Z#b5G)yoE=B+@%cj|W zq@j%OYyZ;H7QgmyieRqifHCHqJ{fp4kQ=y=;`N?_wV`Nj*kv0a;p@IF?qL+XzQ)vQpLmuw981O2>t}I0PKI z+~TDCxa{Gb=Tz73W#2w$%ZFB%3tUr?Ys#69^wo6B5p@b4`L6Xwy@Ms>DcDS8cnS`A p&f4X9&akb@{gF3XY&J>vXB2$0F87!I{OMZ&A{{a?VrcD3< delta 750 zcmX@6xm{jkIWI340}xyYV@f;8$-wX!#DM{JDC6@3hKU*>^-K(@Y$+Ve7#SE=12F_d z@uqOLFhudCZ~;mF6mB3Xkir8b1%awrQg~DOmN5a<12F`EMfpKqWkr=degK-q^f@#g>Uz8z@i= zvRpx-NOdw3yFR1ZWFvNUC3T=sDI1V@+Ogo}%q2yVK&B>p5eJYek^&L(ldIWv*c3rb zrO9jAEyYxU%v)S3sX3`7siDQGMMY*n0j0@**e5fpZ=S$W$Y>-CQY-=@K(Ln(*r5$ zpX|pgKluh%38VVt2^^A})41apO+j{NzF-D=j~~c-Hg&_Z-gQrQ^gdlXTu)NFKxn#SA#eiX1>Jkp5d7ARFRKi*kx|L1Lgd0bBEn z!zMRBr8FniuE-xK21;wie3N5@YZV^wigiRzsJY0ia)no=f$IaCFr)eh1~{QJSx`iW WQEqaKh>gGpPF5bK1`ZGen+yP2V5B(! diff --git a/serve/serve/views/user.py b/serve/serve/views/user.py index 1e473da..098659b 100644 --- a/serve/serve/views/user.py +++ b/serve/serve/views/user.py @@ -5,12 +5,14 @@ from serve.utils.connectdb import connectdb from bson.objectid import ObjectId from serve.middleware.handleErrorMethod import handleErrorMethod from serve.middleware.handleEmpty import handleEmpty +from serve.utils.pyjwt import get_jwt_token,decode_jwt_token collection = connectdb('user_model') def createUser(request): result = handleErrorMethod(request.method, 'POST') + if result[0]: data = json.loads(request.body) print(data) @@ -72,9 +74,35 @@ def getUser(request): return JsonResponse(result[1]) +def loginUser(request): + result = handleErrorMethod(request.method, 'POST') + token = get_jwt_token('abc') + + if result[0]: + + return JsonResponse({"code": 2000, "msg": "登陆成功", "token": token}) + else: + return JsonResponse(result[1]) + + +def testUser(request): + result = handleErrorMethod(request.method, 'POST') + data = decode_jwt_token( + "eyJhbGciOiJIUzI1NiIsInR5cCsI6IkpXVCJ9.eyJleHAiOjE3MTE1MDIzMDcsImlhdCI6MTcxMTUwMjI5NywiZGF0YSI6eyJ1c2VybmFtZSI6ImFiYyIsInJvbGVfZGF0YSI6ImRlZmF1bHQifX0.KYpzmz0RWqyAMI3P7UN2I_TdrZoNaXafrFcZuSajsqQ") + print(data) + + if result[0]: + + return JsonResponse(data) + else: + return JsonResponse(result[1]) + + user_url = [ path('user/create', createUser), path('user/delete', deleteUser), path('user/update', updateUser), path('user/get', getUser), + path('user/login', loginUser), + path('user/test', testUser), ]