欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

安裝配置jwt的token認(rèn)證

1. jwt簡(jiǎn)介

Json web token (JWT), 是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn)((RFC 7519).該token被設(shè)計(jì)為緊湊且安全的,特別適用于分布式站點(diǎn)的單點(diǎn)登錄(SSO)場(chǎng)景。JWT的聲明一般被用來(lái)在身份提供者和服務(wù)提供者間傳遞被認(rèn)證的用戶身份信息,以便于從資源服務(wù)器獲取資源,也可以增加一些額外的其它業(yè)務(wù)邏輯所必須的聲明信息,該token也可直接被用于認(rèn)證,也可被加密。

成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),10余年企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都上1000家客戶提供網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營(yíng)銷型網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),同時(shí)也為不同行業(yè)的客戶提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選成都創(chuàng)新互聯(lián)

2. jwt構(gòu)成

jwt就是一段字符串, 由三段信息構(gòu)成的, 將這三段信息文本用. 鏈接在一起就構(gòu)成了jwt字符串, 就像這樣:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

第一部分我們稱它為頭部(header), 第二部分我們稱其為載荷(payload, 類似于飛機(jī)上承載的物品), 第三部分是簽證(signature).

header

jwt的頭部承載兩部分信息:
a. 聲明類型, 這里是jwt
b. 聲明加密的算法,通常直接使用 HMAC SHA256
完整的頭部就像下面這樣的JSON:

{
    'typ': 'JWT',
    'alg': 'HS256'
}

然后將頭部進(jìn)行base64加密(該加密是可以對(duì)稱解密的), 構(gòu)成了第一部分

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9
payload

載荷就是存放有效信息的地方, 這個(gè)名字像是特指承載的貨品, 這些有效信息包含三部分
a. 標(biāo)準(zhǔn)中注冊(cè)的聲明
b. 公共的聲明
c. 私有的聲明

標(biāo)準(zhǔn)中注冊(cè)的聲明(建議但不強(qiáng)制使用)
  • iss: jwt簽發(fā)者
    • sub: jwt所面向的用戶
    • aud: 接收jwt的一方
    • exp: jwt的過(guò)期時(shí)間, 這個(gè)過(guò)期時(shí)間必須要大于簽發(fā)時(shí)間
    • nbf: 定義在什么時(shí)間之前, 該jwt都是不可用的
    • iat: jwt的簽發(fā)時(shí)間
    • jti: jwt的唯一身份標(biāo)識(shí), 主要用來(lái)作為一次性token, 從而回避重放***.
公共的聲明:
    公共的聲明可以添加任何的信息, 一般添加用戶的相關(guān)信息或其他業(yè)務(wù)需要的必要信息, 但不建議添加敏感信息, 因?yàn)樵摬糠衷诳蛻舳丝山饷?/code>
私有的聲明:
私有聲明是提供者和消費(fèi)者所共同定義的聲明, 一般不建議存放敏感信息, 因?yàn)閎ase64是對(duì)稱解密的, 意味著該部分信息可以歸類為明文信息

定義一個(gè)payload:

{
  "sub": "1234567890",
  "name": "John Doe",
  "admin": true
}
signature

JWT的第三部分是一個(gè)簽證信息,這個(gè)簽證信息由三部分組成:

header (base64后的)

payload (base64后的)

secret

這個(gè)部分需要base64加密后的header和base64加密后的payload使用.連接組成的字符串,然后通過(guò)header中聲明的加密方式進(jìn)行加鹽secret組合加密,然后就構(gòu)成了jwt的第三部分。

// javascript
var encodedString = base64UrlEncode(header) + '.' + base64UrlEncode(payload);

var signature = HMACSHA256(encodedString, 'secret'); // TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

將這三部分用.連接成一個(gè)完整的字符串,構(gòu)成了最終的jwt:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
注意:secret是保存在服務(wù)器端的,jwt的簽發(fā)生成也是在服務(wù)器端的,secret就是用來(lái)進(jìn)行jwt的簽發(fā)和jwt的驗(yàn)證,所以,它就是你服務(wù)端的私鑰,在任何場(chǎng)景都不應(yīng)該流露出去。一旦客戶端得知這個(gè)secret, 那就意味著客戶端是可以自我簽發(fā)jwt了。

django-rest-framework-jw文檔網(wǎng)站

安裝配置JWT

1. 安裝
pip install djangorestframework-jwt
2. 在配置文件dev.py中增加以下內(nèi)容:
REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
        'rest_framework.authentication.SessionAuthentication',
        'rest_framework.authentication.BasicAuthentication',
    ),
}
import datetime
JWT_AUTH = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=1),
}

JWT_EXPIRATION_DELTA 指明token的有效期

3. Django REST framework JWT 擴(kuò)展的說(shuō)明文檔中提供了手動(dòng)簽發(fā)JWT的方法
from rest_framework_jwt.settings import api_settings

jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER

payload = jwt_payload_handler(user)
token = jwt_encode_handler(payload)

在用戶注冊(cè)或者登錄成功后, 在序列化器中返回用戶信息以后同時(shí)返回token即可

4. Django REST framework JWT提供了登錄獲取token的視圖,可以直接使用

在子路由中, 配置路由:

from rest_framework_jwt.views import obtain_jwt_token

urlpatterns = [
    path('login/', obtain_jwt_token),
]
5. 在主路由中, 引入當(dāng)前子應(yīng)用的路由文件
urlpatterns = [
    path('users/', include("users.urls")),
    # include 的值必須是模塊名.urls格式, 字符串中間只能出現(xiàn)一個(gè)圓點(diǎn)
]

文章標(biāo)題:安裝配置jwt的token認(rèn)證
分享路徑:http://aaarwkj.com/article38/jjjdpp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)服務(wù)器托管、、微信小程序、品牌網(wǎng)站設(shè)計(jì)網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

在线麻豆国产传媒免费| 2018在线不卡爱视频| 青青草成人公开在线视频| 日本a级片免费在线观看| 久久尤物av天堂日日综合| 91九色在线免费观看| 日韩欧美一区二区福利视频| 日本在线一区二区视频麻豆| 天堂av一区二区在线播放| 青青草免费视频观看在线| 日韩欧美一区二区福利视频| 国产精品一久久香蕉产线看| 一级丰满少妇av大片| 日韩精品一区二区91| 91亚洲蜜臀精品国产| 欧美国产激情一区二区| 国产成人综合亚洲欧美在线| 黄片在线免费观看欧美中文| 91高清视频在线免费观看| 久久精品性少妇一区=区三区| 亚洲精品国产精品粉嫩av| 亚洲欧美av中文日韩二区| 成人av久久一区二区三区| 欧美一区二区黑人巨大| 亚洲综合中文字幕经典av在线 | 老湿机午夜十分钟视频| 一区二区三区国产不卡| 国产情侣最新地址在线| 日本午夜在线观看视频| 国产色视频一区在线观看| 中文字幕有码av海量| 白白色成人永久在线观看视频| av小说亚洲激情乱| 溪乱毛片一区二区三区| 日本中文字幕乱码一区| 国产一区二区日韩一区| 久久久久久精品人妻网| 国产三级国产剧情国产av| 精品传媒国产在线观看| 亚洲欧美制服另类国产| 99在线精品热视频|