| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import { mapMutations } from 'vuex'
- import jwt from 'jsonwebtoken'
- export default function (context) {
- const {app, route, store, req, res, requset, redirect, next} = context;
- let isClient = process.client;
- let isServer = process.server;
- let token, path;
- // res.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
- // res.setHeader("Access-Control-Allow-Credentials", true);
- token = store.state.token;
- // console.log("cookies", cook);
- //在服务端
- if (isServer) {
- path = req.originalUrl;
- }
- //在客户端判读是否需要登陆
- if (isClient) {
- path = route.path;
- }
- console.log("path:"+path);
- let mainPath = path.split("?")[0];
- console.log('mainPath', mainPath);
- if(mainPath === "/setToken"){
- try{
- const params = path.split("?")[1].split('&');
- let obj = {};
- if(params.length !== 5
- || params[0].split("=")[0] !== "origin_path"
- || params[1].split("=")[0] !== "token"
- || params[2].split("=")[0] !== "id"
- || params[3].split("=")[0] !== "name"
- || params[4].split("=")[0] !== "phone"
- ){
- redirect('/error');
- }else{
- for(let i = 0; i < 5 ; i++){
- obj[params[i].split("=")[0]] = params[i].split("=")[1];
- }
- console.log('obj', obj);
- let new_token = obj['token'];
- let origin_path = obj['origin_path'];
- let user = {id: obj['id'], name: obj['name'], phone: obj['phone']};
- app.$cookies.set('token', new_token);
- app.$cookies.set('user', user);
- redirect(origin_path);
- }
- }catch (e) {
- console.log("e: ", e);
- redirect('/error');
- }
- }
- else if (!token && mainPath !== "/" && mainPath !=="/login" && mainPath !== "/register" && mainPath !=="/error" && mainPath !== "/api/receiveIDToken") {
- redirect('/api/authenticate?path=' + mainPath);
- }
- }
|