依赖总结
后端部分
1 | "dependencies": { |
前端部分
1 | "dependencies": { |
token
生成token
后端代码 users.js
登录成功部分节选
1 | const jwt = require('jsonwebtoken'); |
验证token
passport初始化
后端代码 index.js
节选
1 | const passport = require('passport'); |
后端代码 passport.js
节选
1 | const JwtStrategy = require('passport-jwt').Strategy, |
进行请求
必须带着 token
才能请求成功。使用 postman
进行测试时要设置 headers 部分的 Authorization
为登录请求后得到的 token
值,在这个项目中,只有登录和注册是不带 token
验证的。
后端代码 profiles.js
节选
1 | // $route POST api/profiles/add |
后端代码 users.js
节选
前端部分并没有使用 current
这个接口,这个接口只是为了了解 token
,特别是下面 req.user
部分,个人觉得 req.user
部分就代表 token
验证成功,表示谁去请求。
1 | // $route GET api/users/current |
请求拦截响应拦截
前端代码中 http.js
节选
1 | // 请求拦截 |
vuex
前端部分 store.js
代码
1 | import Vue from 'vue' |
前端部分 Login.vue
代码节选
1 | this.$axios.post("/api/users/login", this.loginUser) |
总结流程
首先进入 register
或者 login
页面,因为有路由守卫,所以不能直接进入 index
页面,进行注册,然后登录,登录会返回后端生成的 token
,存储 token
到 localStorage
中,并解析 token
存储到 vuex
中,设置授权 setAuthenticated
为真,setUser
为 token
解析后的用户信息,如果登录失败,可能是 token
过期失效,如果退出登录的话,会删除 localStorage
中的 token
,并将 vuex
中的存储清除。
进行对数据的增删改查需要带上 token
,在请求拦截与响应拦截中有相关的配置。