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
     "formik": "^2.2.9",
18
     "formik": "^2.2.9",
19
     "jquery": "^3.6.0",
19
     "jquery": "^3.6.0",
20
     "js-cookie": "^3.0.1",
20
     "js-cookie": "^3.0.1",
21
+    "jwt-decode": "^3.1.2",
21
     "react": "^17.0.2",
22
     "react": "^17.0.2",
22
     "react-bootstrap": "^2.0.2",
23
     "react-bootstrap": "^2.0.2",
23
     "react-dom": "^17.0.2",
24
     "react-dom": "^17.0.2",

+ 11 - 13
src/Auth/AuthProvider.js

5
 
5
 
6
 export function AuthProvider ({ children }){
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
     const context = {
10
     const context = {
11
         user,
11
         user,
12
-        login: (user) => {
13
-
12
+        login: (token) => {
14
             try{
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
             }catch(e){
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
         logout : () => {
22
         logout : () => {
25
-            Cookies.set('user', undefined)
23
+            Cookies.set('token', undefined)
26
             setUser(undefined)
24
             setUser(undefined)
27
         },
25
         },
28
         isLogged : () => {
26
         isLogged : () => {
29
             try{
27
             try{
30
-                let CookiesUser = Cookies.get('user')
28
+                let CookiesUser = Cookies.get('token')
31
                 if(!CookiesUser || CookiesUser === 'undefined'){
29
                 if(!CookiesUser || CookiesUser === 'undefined'){
32
                     return false
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
                 console.log("is login? >>", logged)
35
                 console.log("is login? >>", logged)
38
                 return logged
36
                 return logged
39
 
37
 

+ 24 - 17
src/Pages/Login.jsx

1
 import * as React from 'react';
1
 import * as React from 'react';
2
 import toast, { Toaster } from 'react-hot-toast';
2
 import toast, { Toaster } from 'react-hot-toast';
3
+import jwt_decode from "jwt-decode";
3
 
4
 
4
 import { 
5
 import { 
5
     Paper, Box, Grid, Checkbox, FormControlLabel, Typography,
6
     Paper, Box, Grid, Checkbox, FormControlLabel, Typography,
51
         },
52
         },
52
         validationSchema: LoginSchema,
53
         validationSchema: LoginSchema,
53
         onSubmit: async (values) => {
54
         onSubmit: async (values) => {
55
+
54
             let { email, password } = values
56
             let { email, password } = values
55
             setOpen(true)
57
             setOpen(true)
56
 
58
 
57
             let request = new Service(`/user?user=${email}&password=${password}`)
59
             let request = new Service(`/user?user=${email}&password=${password}`)
60
+
58
             request
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
 function CardPrueba(props){
15
 function CardPrueba(props){
16
 
16
 
17
     let id = ( parseInt( ID.next().value ) * 210598120309218301923 );
17
     let id = ( parseInt( ID.next().value ) * 210598120309218301923 );
18
-    console.log("ID >> ", id)
19
 
18
 
20
     return(
19
     return(
21
-        <Col key={id} md="4">
20
+        <Col  md="4">
22
             <div className="body_prueba">
21
             <div className="body_prueba">
23
                 <div className="modern-Checkbox">
22
                 <div className="modern-Checkbox">
24
                     <input type="checkbox"  name={`box-${id}` } id={`box-${id}` } />
23
                     <input type="checkbox"  name={`box-${id}` } id={`box-${id}` } />
119
                                 {
118
                                 {
120
                                     comportamiento.map( (test, index) => {
119
                                     comportamiento.map( (test, index) => {
121
                                         return (
120
                                         return (
122
-                                            <CardPrueba name={test} id={index}/>
121
+                                            <CardPrueba key={index} name={test} id={index}/>
123
                                         )
122
                                         )
124
                                     })
123
                                     })
125
                                 }
124
                                 }
133
                                 {
132
                                 {
134
                                     personalidad.map( (test, index) => {
133
                                     personalidad.map( (test, index) => {
135
                                         return (
134
                                         return (
136
-                                            <CardPrueba name={test} id={index}/>
135
+                                            <CardPrueba key={index} name={test} id={index}/>
137
                                         )
136
                                         )
138
                                     })
137
                                     })
139
                                 }
138
                                 }
147
                                 {
146
                                 {
148
                                     inteligencia.map( (test, index) => {
147
                                     inteligencia.map( (test, index) => {
149
                                         return (
148
                                         return (
150
-                                            <CardPrueba name={test} id={index}/>
149
+                                            <CardPrueba key={index} name={test} id={index}/>
151
                                         )
150
                                         )
152
                                     })
151
                                     })
153
                                 }
152
                                 }