国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

Django 實(shí)現(xiàn)jwt認(rèn)證的示例

瀏覽:45日期:2024-09-08 15:53:55
一、 jwt 安裝和配置安裝

虛擬環(huán)境下執(zhí)行以下命令

pip install djangorestframework-jwt配置總路由配置

from django.contrib import adminfrom django.urls import path,includeurlpatterns = [ path(’admin/’, admin.site.urls), path(’users/’,include(’users.urls’)),]分路由配置

renranapi/apps/users/urls.py

注: obtain_jwt_token:驗(yàn)證用戶(hù)名密碼是否有效,生產(chǎn)token 值,post 方法 -- user應(yīng)用下 ser 表中去查詢(xún),dev.py:user.User

from django.urls import pathfrom rest_framework_jwt.views import obtain_jwt_tokenurlpatterns=[path(’login/’,obtain_jwt_token)]postman 測(cè)試

Django 實(shí)現(xiàn)jwt認(rèn)證的示例

Django 實(shí)現(xiàn)jwt認(rèn)證的示例

前端配置登錄按鈕

login.vue

line32 加上 click 動(dòng)作

<button @click='loginHandler' type='button'> <span id='sign-in-loading'></span> 登錄 </button>

line56 前端請(qǐng)求后端數(shù)據(jù)庫(kù)

<script> export default {name: 'Login', data(){ return { username:’’, password:’’, } }, methods:{ loginHandler(){ this.$axios.post( `${this.$settings.host}/users/login/`,{ username:this.username, password:this.password, }).then((res)=>{ console.log(res); }).catch((error)=>{ console.log(error); }) }, } }</script>

line 16-25

<div class='input-prepend restyle js-normal'><input v-model='username' placeholder='手機(jī)號(hào)或郵箱' type='text' name='session[email_or_mobile_number]' id='session_email_or_mobile_number'><i class='iconfont ic-user'></i> </div> <!-- 海外登錄登錄名輸入框 --> <div class='input-prepend'> <input v-model='password' placeholder='密碼' type='password' name='password' id='session_password'> <i class='iconfont ic-password'></i> </div>

settings.js

export default { # 將原來(lái) 127.0.0.1:8000 什么的改成新的url 地址 ’host’: ’http://api.renran.com:8000’,}

登錄測(cè)試密碼錯(cuò)誤時(shí):

Django 實(shí)現(xiàn)jwt認(rèn)證的示例

密碼正確時(shí):

Django 實(shí)現(xiàn)jwt認(rèn)證的示例

remember me 認(rèn)證

對(duì)于瀏覽器來(lái)說(shuō),如果不保存密碼則返回 sessionstorage;保存密碼的話返回 localstorage,如圖

Django 實(shí)現(xiàn)jwt認(rèn)證的示例

login.vue line28

<div class='remember-btn'> <input type='checkbox' v-model='remember_me'name='remember_me' id='session_remember_me'><span>記住我</span> </div>

line59

data(){ return { username:’’, password:’’, remember_me:false, } }, methods:{ loginHandler(){ this.$axios.post( `${this.$settings.host}/users/login/`,{ username:this.username, password:this.password, }).then((res)=>{ console.log(res); if (this.remember_me){localStorage.token = rens.data.token;//sessionStorage.clear() 清除所有的網(wǎng)站的 sessionstoragesessionStorage.removeItem(`token`); }else {sessionStorage.token = res.data.token;localStorage.removeItem(`token`); } }).catch((error)=>{ console.log(error); }) }, }登錄后確定框

element-ui網(wǎng)站下載:element.eleme.cn/#/zh-CN/com…

// 登錄成功后跳轉(zhuǎn)到首頁(yè)this.$confirm(’登錄成功, 是否繼續(xù)?’, ’提示’, { confirmButtonText: ’確定’, cancelButtonText: ’取消’, type: ’warning’}).then(() => { this.$router.push(’/’);}).catch(() => { this.$message({ type: ’?’, message: ’不登錄?’ });}); }).catch((error)=>{ this.$message({type:’error’,message:’用戶(hù)名或密碼錯(cuò)誤’}) }) }, }

以上就是Django 實(shí)現(xiàn)jwt 認(rèn)證的示例的詳細(xì)內(nèi)容,更多關(guān)于Django 實(shí)現(xiàn)jwt 認(rèn)證的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 亚洲精品国产成人99久久 | 成人免费黄色网址 | 韩国三级大全久久网站 | 国产成人毛片精品不卡在线 | 亚洲美女在线观看亚洲美女 | 国产精品线在线精品国语 | 日本视频在线免费看 | 完全免费在线视频 | 亚洲成a v人片在线看片 | 欧美高清另类自拍视频在线看 | 九九精品免费 | 欧美日韩一区二区三 | 欧美日韩专区国产精品 | 国产盗摄视频 | 免费黄色三级网站 | 国产日韩美国成人 | 国产乱码精品一区二区三区四川人 | 成人欧美视频在线看免费 | 国产一二三区在线观看 | 亚洲成人免费视频 | 国产亚洲精品aaa大片 | 日韩一区二区久久久久久 | 欧美成人免费高清视频 | 一区二区三区视频免费 | 黄色三级网 | 久草在线视频首页 | 视频一区在线观看 | 91精品国产一区二区三区左线 | www.欧美在线观看 | 亚洲视频手机在线观看 | 91精品国产免费久久 | 欧美久久久久欧美一区 | 久草视频在线免费播放 | 成人a毛片视频免费看 | 成人a在线观看 | 亚洲a网 | 另类视频区第一页 | 国产亚洲福利精品一区二区 | 国产日韩亚洲不卡高清在线观看 | 美女张开腿让男人 | 97精品久久久久中文字幕 |