|
|
@@ -1,12 +1,19 @@
|
|
|
import { mapMutations } from 'vuex'
|
|
|
+import jwt from 'jsonwebtoken'
|
|
|
|
|
|
-export default function ({route, store, req, res, redirect, next}) {
|
|
|
+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('token', token);
|
|
|
|
|
|
+ // console.log("cookies", cook);
|
|
|
//在服务端
|
|
|
if (isServer) {
|
|
|
path = req.originalUrl;
|
|
|
@@ -18,12 +25,47 @@ export default function ({route, store, req, res, redirect, next}) {
|
|
|
|
|
|
console.log("path:"+path);
|
|
|
let mainPath = path.split("?")[0];
|
|
|
+ console.log('mainPath', mainPath);
|
|
|
+
|
|
|
+ if(mainPath === "/setToken"){
|
|
|
+ try{
|
|
|
+ // console.log("req.query", res.query);
|
|
|
+ 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);
|
|
|
|
|
|
- if (!token && mainPath !== "/" && mainPath !=="/login" && mainPath !== "/register" && mainPath !=="/error" && mainPath !== "/api/receiveIDToken") {
|
|
|
+ console.log('origin_path', origin_path);
|
|
|
+ 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);
|
|
|
|
|
|
- }else{
|
|
|
- console.log("next");
|
|
|
- next();
|
|
|
}
|
|
|
+
|
|
|
}
|