2.登入/退出功能(路由導航守衛)
2.1登入概述
1. 登入業務的相關技術點
- http是無狀態的
- 通過cookie在客戶端記錄狀態
- 通過session在伺服器端記錄狀態
- 通過token方式維持狀態(存在跨域問題時使用)
2.2 登入 - token原理分析
2.3 登入頁面的實現
- 用編譯器開啟專案,在開啟編譯器的控制檯,輸入命令
git checkout -b login //login為要建立的元件名稱
2.4 axios在登入功能中的應用
- 安裝axios
npm install axios --save
- 在main.js中引入axios
import axios from "axios"
Vue.prototype.$http = axios
//配置axios請求根路徑,根路徑要填寫自己的API介面路徑
axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/'
2.4.1 進行表單的預驗證
說明:
在輸入賬號和密碼後判斷該使用者是否存在
- Login.vue
data(){
return{
ruleForm:{
username:"",
password:"",
},
}
},
methods: {
submitForm(){
this.$refs.ruleForm.validate(async valid => {
if(!valid) return;
const {data:res} = await this.$http.post("login",this.ruleForm);
if(res.meta.status != 200) return this.$message.error("登入失敗");
this.$message.success("登入成功");
})
},
}
2.4.2 路由導航守衛
說明:
- 將登陸成功之後的
token
,儲存到客戶端的sessionStorage
中- 專案中除了登入之外的其他API介面,必須在登入之後才能訪問
token
只應在當前網站開啟期間生效,所有將token
儲存在sessionStorage
中
程式碼
- 在Login.vue的
submitForm()
方法中加入
//登入成功後記錄token
window.sessionStorage.setItem("token",res.data.token);
this.$router.push("/home");
- router->index.js
import Vue from 'vue'
import Router from 'vue-router'
import Login from '../components/Login.vue'
import Home from '../components/Home.vue'
Vue.use(Router)
const router = new Router({
routes: [
{path:'/home',component:Home},
{path:'/login',component:Login}
],
//mode: "history"
})
//掛載路由導航守衛
router.beforeEach((to,from,next) => {
//t0 將要訪問的路徑
//from 代表從哪個路徑跳轉而來
//next 是一個函式,表示放行
if(to.path == '/login') return next();
const tokenstr = window.sessionStorage.getItem('token');
if(!tokenstr) return next('/login'); //如果token值存在則放行,不存在就跳轉登入頁面
next();
})
export default router
2.4.3 退出功能
點選按鈕退出登入
- Home.vue
<div id="home">
<el-button type="infor" @click="clickOut">退出</el-button>
</div>
methods:{
clickOut(){
//情況token
window.sessionStorage.clear();
//跳轉到登入頁面
this.$router.push('/login');
}
}
相關文章
- Vue 導航守衛(路由的生命週期)Vue路由
- Angular專案路由配置與導航守衛Angular路由
- Vue — 導航守衛Vue
- 動手理解導航守衛(Vue)Vue
- 如何實現一個react-router路由攔截(導航守衛)React路由
- vue2.0全域性路由守衛(全域性控制登入)Vue路由
- Angular路由——路由守衛Angular路由
- Vue -- vue-全域性導航守衛Vue
- Java登陸第四十天——Router路由守衛Java路由
- Vue的鉤子函式[路由導航守衛、keep-alive、生命週期鉤子]Vue函式路由Keep-Alive
- Flutter 登入退出功能注意事項Flutter
- [NGX]Angular路由守衛初探(1)Angular路由
- 路由導航路由
- vue2.0 實現路由守衛Vue路由
- Vue | 路由守衛面試常考Vue路由面試
- Angular入門到精通系列教程(13)- 路由守衛(Route Guards)Angular路由
- 一篇搞定導航守衛(vue-router原始碼學習)Vue原始碼
- 千鋒長沙前端培訓:VUE-router導航守衛講解前端Vue
- Flask——登入、退出Flask
- HarmonyOS Next 入門實戰 - 導航框架:頁面路由、元件導航(Navigation)框架路由元件Navigation
- Flutter路由和導航Flutter路由
- Flutter 的路由導航Flutter路由
- 登路後跳入退出前的路由路由
- Auth Session 退出他人正登入的賬號、passport 退出登入SessionPassport
- 基於session的登入與退出思維導圖Session
- Java 中使用 Session 物件(以登入、退出功能為例)JavaSession物件
- Resove守衛
- Spring Boot退出登入注意點Spring Boot
- Flutter開發之路由與導航Flutter路由
- flutter小記之路由和導航Flutter路由
- Vue總結第五天:vue-router (使用模組化(建立Vue元件)機制程式設計)、router-link 標籤的屬性、路由程式碼跳轉、懶載入、路由巢狀(子路由)、路由傳遞資料、導航守衛)Vue元件程式設計路由巢狀
- 2024-07-18 給vue專案新增自定義路由守衛Vue路由
- Java Servlet session實現登入退出JavaServletSession
- 登入功能
- (四)選單導航及路由設定路由
- Flutter開發之導航與路由管理Flutter路由
- win10怎麼退出登入賬戶_win10電腦退出賬戶登入的方法Win10
- 使用 navigateTo 實現靈活的路由導航路由