国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Python 基于jwt實現(xiàn)認證機制流程解析

瀏覽:90日期:2022-07-20 08:00:19

1.jwt的優(yōu)缺點

jwt的優(yōu)點:

1. 實現(xiàn)分布式的單點登陸非常方便

2. 數(shù)據(jù)實際保存在客戶端,所以我們可以分擔(dān)數(shù)據(jù)庫或服務(wù)器的存儲壓力

jwt的缺點:

1. 數(shù)據(jù)保存在了客戶端,我們服務(wù)端只認jwt,不識別客戶端。2. jwt可以設(shè)置過期時間,但是因為數(shù)據(jù)保存在了客戶端,所以對于過期時間不好調(diào)整。

2.安裝jwt

pip install djangorestframework-jwt -i https://pypi.douban.com/simple

3.在settings.dev中

REST_FRAMEWORK = { ’DEFAULT_AUTHENTICATION_CLASSES’: ( ’rest_framework_jwt.authentication.JSONWebTokenAuthentication’, ’rest_framework.authentication.SessionAuthentication’, ’rest_framework.authentication.BasicAuthentication’, ),}import datetimeJWT_AUTH = { ’JWT_EXPIRATION_DELTA’: datetime.timedelta(days=1), ##設(shè)置token的有效值}

4.手動生成jwt

from rest_framework_jwt.settings import api_settingsjwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLERjwt_encode_handler = api_settings.JWT_ENCODE_HANDLERpayload = jwt_payload_handler(user)token = jwt_encode_handler(payload)

5.后端實現(xiàn)登陸認證接口(在子應(yīng)用路由urls.py中)

from rest_framework_jwt.views import obtain_jwt_tokenurlpatterns = [ path(r’login/’, obtain_jwt_token), ##提供接口]

6.自定義返回數(shù)據(jù),(user.utils.jwt_response_payload_handler路徑下)

def jwt_response_payload_handler(token, user=None, request=None): ''' 自定義jwt認證成功返回數(shù)據(jù) ''' return { ’token’: token, ’id’: user.id, ’username’: user.username }#這個是自定義jwt認證成功返回數(shù)據(jù),一般會放在子應(yīng)用下utils文件中,然后在settings中配置,將路徑告訴django

7.修改settings.dev配置文件

# JWTJWT_AUTH = { ’JWT_EXPIRATION_DELTA’: datetime.timedelta(days=1), ’JWT_RESPONSE_PAYLOAD_HANDLER’: ’user.utils.jwt_response_payload_handler’,}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 黔西县| 怀宁县| 涪陵区| 仪陇县| 思茅市| 获嘉县| 孟村| 进贤县| 承德县| 平泉县| 泉州市| 清徐县| 龙胜| 读书| 东乡族自治县| 天水市| 台北县| 青阳县| 石楼县| 江川县| 文安县| 星子县| 松潘县| 洪雅县| 荥经县| 宿迁市| 桐城市| 金塔县| 台中市| 保定市| 武清区| 扎兰屯市| 门头沟区| 海宁市| 个旧市| 永善县| 晋州市| 衡阳市| 略阳县| 吴江市| 石棉县|