您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在Django中實現(xiàn)jwt認證,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
虛擬環(huán)境下執(zhí)行以下命令
pip install djangorestframework-jwt
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('users/',include('users.urls')), ]
renranapi/apps/users/urls.py
注: obtain_jwt_token:驗證用戶名密碼是否有效,生產token 值,post 方法 -- user應用下 ser 表中去查詢,dev.py:user.User
from django.urls import path from rest_framework_jwt.views import obtain_jwt_token urlpatterns=[ path('login/',obtain_jwt_token) ]
login.vue
line32 加上 click 動作
<button @click="loginHandler" class="sign-in-button" id="sign-in-form-submit-btn" type="button"> <span id="sign-in-loading"></span> 登錄 </button>
line56 前端請求后端數(shù)據(jù)庫
<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="手機號或郵箱" 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 { # 將原來 127.0.0.1:8000 什么的改成新的url 地址 'host': 'http://api.renran.com:8000', }
登錄測試
密碼錯誤時:
密碼正確時:
對于瀏覽器來說,如果不保存密碼則返回 sessionstorage;保存密碼的話返回 localstorage,如圖
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)站的 sessionstorage sessionStorage.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…
// 登錄成功后跳轉到首頁 this.$confirm('登錄成功, 是否繼續(xù)?', '提示', { confirmButtonText: '確定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.$router.push('/'); }).catch(() => { this.$message({ type: '?', message: '不登錄?' }); }); }).catch((error)=>{ this.$message({ type:'error', message:'用戶名或密碼錯誤' }) }) }, }
上述內容就是怎么在Django中實現(xiàn)jwt認證,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。