Quellcode durchsuchen

improve setToken and finish register verification

Starink vor 6 Jahren
Ursprung
Commit
f8b398c43e
6 geänderte Dateien mit 21 neuen und 33 gelöschten Zeilen
  1. 2 22
      middleware/auth.js
  2. 2 2
      pages/index.vue
  3. 8 5
      server/controller/auth.js
  4. 2 0
      server/controller/user.js
  5. 2 1
      server/index.js
  6. 5 3
      store/index.js

+ 2 - 22
middleware/auth.js

@@ -1,6 +1,6 @@
 
 export default function (context) {
-  const {app, route, store, req, res, redirect, next} = context;
+  const {app, route, store, req, res, redirect, next, session} = context;
   let isClient = process.client;
   let isServer = process.server;
   let token, path;
@@ -25,31 +25,10 @@ export default function (context) {
 
   if(mainPath === "/setToken"){
     try{
-      const params = path.split("?")[1].split('&');
-      let obj = {};
-      if(params.length !== 4
-        || params[0].split("=")[0] !== "token"
-        || params[1].split("=")[0] !== "id"
-        || params[2].split("=")[0] !== "name"
-        || params[3].split("=")[0] !== "phone"
-      ){
-        redirect('/error');
-      }else{
-        for(let i = 0; i < 4 ; i++){
-          obj[params[i].split("=")[0]] = params[i].split("=")[1];
-
-        }
-        // console.log('obj', obj);
-        let new_token = obj['token'];
-        let user = {id: obj['id'], name: obj['name'], phone: obj['phone']};
-
-        app.$cookies.set('token', new_token);
-        app.$cookies.set('user', user);
         let origin_path = app.$cookies.get('origin_path');
         app.$cookies.remove('origin_path');
 
         redirect(origin_path);
-      }
 
     }catch (e) {
       console.log("e: ", e);
@@ -59,6 +38,7 @@ export default function (context) {
 
   else if (!token && mainPath !== "/" && mainPath !=="/login" && mainPath !== "/register" && mainPath !=="/error" && mainPath !== "/api/receiveIDToken") {
 
+    console.log("session:", req.session);
     app.$cookies.set('origin_path', path);
     redirect('/api/authenticate');
 

+ 2 - 2
pages/index.vue

@@ -30,8 +30,8 @@ export default {
   },
   mounted(){
     this.$cookies.removeAll();
-    this.$store.commit('setToken', null);
-    this.$store.commit('setUser', {});
+    this.$store.commit('saveToken', null);
+    this.$store.commit('saveUser', {});
 
   }
 }

+ 8 - 5
server/controller/auth.js

@@ -68,7 +68,12 @@ class AuthController{
               user,'seec-portal',{ expiresIn: '1day' }
             );
 
-            console.log('ctx', ctx);
+            ctx.session.token = my_token;
+            ctx.session.user = user;
+
+            console.log('session', ctx.session);
+
+            ctx.redirect('/setToken');
             // console.log('$cookies', ctx.app.$cookies);
 
             // ctx.res.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
@@ -81,10 +86,8 @@ class AuthController{
             //
             // ctx.redirect(origin_path);
 
-            let url = '/setToken?token=' + my_token + '&id=' + user.id + '&name=' + user.name + '&phone=' + user.phone;
-            // store.commit("saveUser", user);
-            // store.commit("saveToken", my_token);
-            ctx.redirect(url);
+            // let url = '/setToken?token=' + my_token + '&id=' + user.id + '&name=' + user.name + '&phone=' + user.phone;
+            // ctx.redirect(url);
           }
         }
       });

+ 2 - 0
server/controller/user.js

@@ -58,6 +58,8 @@ class UserController {
         }else{
           const hashPassword = bcrypt.hashSync(data.password, 10);
           const user = await userModel.create(data.name, hashPassword, data.phone);
+          ctx.session.verification_phone = undefined;
+          ctx.session.verification_code = undefined;
           if (user) {
             ctx.body = Response.success({name: user.name});
           } else {

+ 2 - 1
server/index.js

@@ -73,7 +73,7 @@ app.use(async (ctx, next) => {
     const start = new Date();
     await next();
     const ms = new Date() - start;
-    console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
+    console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
 });
 
 // app.use(jwt({
@@ -165,6 +165,7 @@ async function start () {
   }
 
   app.use((ctx) => {
+    ctx.req.session = ctx.session;
     ctx.status = 200
     ctx.respond = false // Bypass Koa's built-in response handling
     ctx.req.ctx = ctx // This might be useful later on, e.g. in nuxtServerInit or with nuxt-stash

+ 5 - 3
store/index.js

@@ -14,13 +14,15 @@ export const mutations = {
 
 export const actions = {
   nuxtServerInit({ commit}, { req, app }) {
-    const token = app.$cookies.get('token');
-    const user = app.$cookies.get('user');
+    const token = req.session.token;
+    const user = req.session.user;
     if (user){
-      commit('saveUser', user)
+      commit('saveUser', user);
+      req.session.user = undefined;
     }
     if(token){
       commit('saveToken', token);
+      req.session.token = undefined;
     }
   }
 };