Django 實現jwt認證的示例
虛擬環境下執行以下命令
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:驗證用戶名密碼是否有效,生產token 值,post 方法 -- user應用下 ser 表中去查詢,dev.py:user.User
from django.urls import pathfrom rest_framework_jwt.views import obtain_jwt_tokenurlpatterns=[path(’login/’,obtain_jwt_token)]postman 測試
login.vue
line32 加上 click 動作
<button @click='loginHandler' type='button'> <span id='sign-in-loading'></span> 登錄 </button>
line56 前端請求后端數據庫
<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() 清除所有的網站的 sessionstoragesessionStorage.removeItem(`token`); }else {sessionStorage.token = res.data.token;localStorage.removeItem(`token`); } }).catch((error)=>{ console.log(error); }) }, }登錄后確定框
element-ui網站下載:element.eleme.cn/#/zh-CN/com…
// 登錄成功后跳轉到首頁this.$confirm(’登錄成功, 是否繼續?’, ’提示’, { confirmButtonText: ’確定’, cancelButtonText: ’取消’, type: ’warning’}).then(() => { this.$router.push(’/’);}).catch(() => { this.$message({ type: ’?’, message: ’不登錄?’ });}); }).catch((error)=>{ this.$message({type:’error’,message:’用戶名或密碼錯誤’}) }) }, }
以上就是Django 實現jwt 認證的示例的詳細內容,更多關于Django 實現jwt 認證的資料請關注好吧啦網其它相關文章!
相關文章:
