auth.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { mapMutations } from 'vuex'
  2. import jwt from 'jsonwebtoken'
  3. export default function (context) {
  4. const {app, route, store, req, res, requset, redirect, next} = context;
  5. let isClient = process.client;
  6. let isServer = process.server;
  7. let token, path;
  8. // res.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
  9. // res.setHeader("Access-Control-Allow-Credentials", true);
  10. token = store.state.token;
  11. // console.log("cookies", cook);
  12. //在服务端
  13. if (isServer) {
  14. path = req.originalUrl;
  15. }
  16. //在客户端判读是否需要登陆
  17. if (isClient) {
  18. path = route.path;
  19. }
  20. console.log("path:"+path);
  21. let mainPath = path.split("?")[0];
  22. console.log('mainPath', mainPath);
  23. if(mainPath === "/setToken"){
  24. try{
  25. const params = path.split("?")[1].split('&');
  26. let obj = {};
  27. if(params.length !== 5
  28. || params[0].split("=")[0] !== "origin_path"
  29. || params[1].split("=")[0] !== "token"
  30. || params[2].split("=")[0] !== "id"
  31. || params[3].split("=")[0] !== "name"
  32. || params[4].split("=")[0] !== "phone"
  33. ){
  34. redirect('/error');
  35. }else{
  36. for(let i = 0; i < 5 ; i++){
  37. obj[params[i].split("=")[0]] = params[i].split("=")[1];
  38. }
  39. console.log('obj', obj);
  40. let new_token = obj['token'];
  41. let origin_path = obj['origin_path'];
  42. let user = {id: obj['id'], name: obj['name'], phone: obj['phone']};
  43. app.$cookies.set('token', new_token);
  44. app.$cookies.set('user', user);
  45. redirect(origin_path);
  46. }
  47. }catch (e) {
  48. console.log("e: ", e);
  49. redirect('/error');
  50. }
  51. }
  52. else if (!token && mainPath !== "/" && mainPath !=="/login" && mainPath !== "/register" && mainPath !=="/error" && mainPath !== "/api/receiveIDToken") {
  53. redirect('/api/authenticate?path=' + mainPath);
  54. }
  55. }