Browse Source

decrypt jwt

amenpunk 3 years ago
parent
commit
9140a2caf5
4 changed files with 40 additions and 35 deletions
  1. 1 0
      package.json
  2. 11 13
      src/Auth/AuthProvider.js
  3. 24 17
      src/Pages/Login.jsx
  4. 4 5
      src/Pages/PruebaAsignar.jsx

+ 1 - 0
package.json

@@ -18,6 +18,7 @@
18 18
     "formik": "^2.2.9",
19 19
     "jquery": "^3.6.0",
20 20
     "js-cookie": "^3.0.1",
21
+    "jwt-decode": "^3.1.2",
21 22
     "react": "^17.0.2",
22 23
     "react-bootstrap": "^2.0.2",
23 24
     "react-dom": "^17.0.2",

+ 11 - 13
src/Auth/AuthProvider.js

@@ -5,35 +5,33 @@ export const AuthContext = React.createContext(null);
5 5
 
6 6
 export function AuthProvider ({ children }){
7 7
 
8
-    let [user, setUser] = React.useState( Cookies.get('user') )
8
+    let [user, setUser] = React.useState( Cookies.get('token') )
9 9
 
10 10
     const context = {
11 11
         user,
12
-        login: (user) => {
13
-
12
+        login: (token) => {
14 13
             try{
15
-                let body = JSON.stringify( user )
16
-                Cookies.set('user', body, { expires : 7 })
17
-                setUser(Cookies.get('user'))
14
+                Cookies.set('token', token, { expires : 7 })
15
+                setUser(Cookies.get('token'))
18 16
             }catch(e){
19
-                console.log('Error >> ', e)
20
-                Cookies.set('user', undefined)
17
+                console.log('Login Error >> ', e)
18
+                Cookies.set('token', undefined)
21 19
             }
22 20
 
23 21
         },
24 22
         logout : () => {
25
-            Cookies.set('user', undefined)
23
+            Cookies.set('token', undefined)
26 24
             setUser(undefined)
27 25
         },
28 26
         isLogged : () => {
29 27
             try{
30
-                let CookiesUser = Cookies.get('user')
28
+                let CookiesUser = Cookies.get('token')
31 29
                 if(!CookiesUser || CookiesUser === 'undefined'){
32 30
                     return false
33 31
                 }
34
-                let current = JSON.parse(CookiesUser);
35
-                // console.log("CURR", current)
36
-                let logged = Object.keys(current).includes('email')
32
+                // let current = JSON.parse(CookiesUser);
33
+                console.log("token >> ", CookiesUser)
34
+                let logged = CookiesUser.length > 5 //Object.keys(current).includes('email')
37 35
                 console.log("is login? >>", logged)
38 36
                 return logged
39 37
 

+ 24 - 17
src/Pages/Login.jsx

@@ -1,5 +1,6 @@
1 1
 import * as React from 'react';
2 2
 import toast, { Toaster } from 'react-hot-toast';
3
+import jwt_decode from "jwt-decode";
3 4
 
4 5
 import { 
5 6
     Paper, Box, Grid, Checkbox, FormControlLabel, Typography,
@@ -51,28 +52,34 @@ export function Login() {
51 52
         },
52 53
         validationSchema: LoginSchema,
53 54
         onSubmit: async (values) => {
55
+
54 56
             let { email, password } = values
55 57
             setOpen(true)
56 58
 
57 59
             let request = new Service(`/user?user=${email}&password=${password}`)
60
+
58 61
             request
59
-                .post({})
60
-                .then( () => {
61
-                    toast.success('Bienvenido!!')
62
-
63
-                    setTimeout( () => {
64
-                        setOpen(false)
65
-                        auth.login(values)
66
-                    }, 2000)
67
-                }) 
68
-                .catch( err => {
69
-                        setOpen(false)
70
-                    toast.error("Ups! usuario o contraseña incorrectos")
71
-                    console.log("ERROR ", err)
72
-                })
73
-
74
-            // toast.success('Bienvenido!!')
75
-            // return navigate('/dashboard/home')
62
+            .post({})
63
+            .then( response => {
64
+                console.log(response);
65
+
66
+                let { token, nombre, apelidos } = response;
67
+                toast.success(`Bienvenido ${nombre} ${apelidos}!!`)
68
+                token = token.replace("Bearer ", "")
69
+                // token = jwt_decode(token);
70
+                console.log("TOKEN >> ", token)
71
+
72
+                setTimeout( () => {
73
+                    setOpen(false)
74
+                    auth.login(token)
75
+                }, 2000)
76
+            }) 
77
+            .catch( err => {
78
+                setOpen(false)
79
+                toast.error("Ups! usuario o contraseña incorrectos")
80
+                console.log("ERROR ", err)
81
+            })
82
+
76 83
         },
77 84
     });
78 85
 

+ 4 - 5
src/Pages/PruebaAsignar.jsx

@@ -15,10 +15,9 @@ var ID = idMaker();
15 15
 function CardPrueba(props){
16 16
 
17 17
     let id = ( parseInt( ID.next().value ) * 210598120309218301923 );
18
-    console.log("ID >> ", id)
19 18
 
20 19
     return(
21
-        <Col key={id} md="4">
20
+        <Col  md="4">
22 21
             <div className="body_prueba">
23 22
                 <div className="modern-Checkbox">
24 23
                     <input type="checkbox"  name={`box-${id}` } id={`box-${id}` } />
@@ -119,7 +118,7 @@ export function PruebaAsignar() {
119 118
                                 {
120 119
                                     comportamiento.map( (test, index) => {
121 120
                                         return (
122
-                                            <CardPrueba name={test} id={index}/>
121
+                                            <CardPrueba key={index} name={test} id={index}/>
123 122
                                         )
124 123
                                     })
125 124
                                 }
@@ -133,7 +132,7 @@ export function PruebaAsignar() {
133 132
                                 {
134 133
                                     personalidad.map( (test, index) => {
135 134
                                         return (
136
-                                            <CardPrueba name={test} id={index}/>
135
+                                            <CardPrueba key={index} name={test} id={index}/>
137 136
                                         )
138 137
                                     })
139 138
                                 }
@@ -147,7 +146,7 @@ export function PruebaAsignar() {
147 146
                                 {
148 147
                                     inteligencia.map( (test, index) => {
149 148
                                         return (
150
-                                            <CardPrueba name={test} id={index}/>
149
+                                            <CardPrueba key={index} name={test} id={index}/>
151 150
                                         )
152 151
                                     })
153 152
                                 }