done udate ?

This commit is contained in:
kinou-p 2023-06-18 13:46:30 +02:00
commit e97cacebd5
5 changed files with 271 additions and 22 deletions

View File

@ -6,7 +6,7 @@
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */ /* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2023/06/17 01:00:00 by apommier #+# #+# */ /* Created: 2023/06/17 01:00:00 by apommier #+# #+# */
/* Updated: 2023/06/18 13:16:23 by apommier ### ########.fr */ /* Updated: 2023/06/18 13:30:50 by apommier ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -353,6 +353,8 @@ export class AppController {
{ {
const user = await this.userService.findOne(req.user.username); const user = await this.userService.findOne(req.user.username);
const res = await VerifyOTP(user, data.token) const res = await VerifyOTP(user, data.token)
console.log('token in verify=', data.token)
console.log('res in verify=', res)
await this.userService.save(user); await this.userService.save(user);
return res return res
} }
@ -367,6 +369,18 @@ export class AppController {
return res return res
} }
@UseGuards(JwtAuthGuard)
@Post('/deleteOtp')
async deleteOTP(@Request() req, @Body() data: any)
{
const user = await this.userService.findOne(req.user.username);
user.otp_verified = false;
await this.userService.save(user);
// const res = await ValidateOTP(user, data.token)
// await this.userService.save(user);
// return res
}
// @UseGuards(JwtAuthGuard) // @UseGuards(JwtAuthGuard)
// @Get('/QRcode') // @Get('/QRcode')
// async createQrCode(@Request() req) // async createQrCode(@Request() req)
@ -396,18 +410,16 @@ export class AppController {
@Post('/conv') @Post('/conv')
async createConv(@Request() req, @Body() data: any) { async createConv(@Request() req, @Body() data: any) {
///create conv and return it ? id? ///create conv and return it ? id?
// console.log(`data post /conv= ${data}`); console.log(`data post /conv= ${data}`);
// console.log(`data post /conv= ${data.members}`); console.log(`data post /conv= ${data.members}`);
// console.log(`data post /conv= ${data.name}`); // console.log(`data post /conv= ${data.name}`);
// const param = data; // const param = data;
const amIhere = data.members.includes(req.user.username); const amIhere = data.members.includes(req.user.username);
if (!amIhere) if (!amIhere)
data.members.push(req.user.username); data.members.push(req.user.username)
data.admin = [];
data.admin.push(req.user.username);
// let test = {id: 2, members: "cc"}; // let test = {id: 2, members: "cc"};
data.owner = req.user.username; data.owner = req.user.username
data.group = true; data.group = true;
return await this.chatService.createConv(data); return await this.chatService.createConv(data);
// res.json(messages); // res.json(messages);

View File

@ -85,12 +85,13 @@ export const generateOTP = async (user) => {
if (delta === null) { if (delta === null) {
console.log("error verify token") console.log("error verify token")
return ("error verify token") return (0)
} }
else else
{ {
user.otp_verified = true; user.otp_verified = true;
console.log("token verified") console.log("token verified")
return (1)
} }
} catch (error) { } catch (error) {
console.log(error) console.log(error)
@ -111,12 +112,13 @@ export const generateOTP = async (user) => {
if (delta === null) { if (delta === null) {
console.log("error validate token") console.log("error validate token")
return ("error validate token") return (0);
} }
else else
{ {
// user.otp_verified = true; // user.otp_verified = true;
console.log("token validated") console.log("token validated")
return (1);
} }
} catch (error) { } catch (error) {
console.log(error) console.log(error)

View File

@ -87,6 +87,7 @@ const Modal = ({handleClose}) => {
members: selectedOptions, members: selectedOptions,
} }
try{ try{
// test
api.post("/conv", data); api.post("/conv", data);
handleClose(); handleClose();
} catch(err) { } catch(err) {

View File

@ -12,13 +12,13 @@ function getToken() {
console.log(`getToken = ${getToken()}`) console.log(`getToken = ${getToken()}`)
console.log(`Bearer ${localStorage.getItem("token")}`) console.log(`Bearer ${localStorage.getItem("token")}`)
const test = "192.168.1.19" // const test = "192.168.1.19"
// const url = 'http://' + process.env.REACT_APP_BASE_URL + '/api' // const url = 'http://' + process.env.REACT_APP_BASE_URL + '/api'
// const url = 'http://' + test + '/api' // const url = 'http://' + test + '/api'
// console.log("url= ", url) // console.log("url= ", url)
console.log("test= ", test) // console.log("test= ", test)
console.log("env= ", process.env.REACT_APP_BASE_URL) // console.log("env= ", process.env.REACT_APP_BASE_URL)
let api = axios.create({ let api = axios.create({
// baseURL: 'http://localhost/api', // baseURL: 'http://localhost/api',

View File

@ -1,13 +1,247 @@
import { useLocation } from 'react-router-dom'; import { useLocation } from 'react-router-dom';
import { useState, useEffect } from 'react'
import queryString from 'query-string'; import queryString from 'query-string';
import api from "./axiosApi.tsx";
import axios from 'axios';
function SuccessToken() { function SuccessToken() {
const location = useLocation(); const location = useLocation();
const { data } = queryString.parse(location.search); const { data } = queryString.parse(location.search);
const cleanData = data.slice(1, -1); const [code, setCode] = useState('');
const [user, setUser] = useState(false);
useEffect(() => {
if (!data) {
console.log("No data");
return;
}
const cleanData = data.slice(1, -1); // Declare cleanData here
const getUser = async () => {
try {
const tmpUser = await axios({
method: 'GET',
url: 'http://' + process.env.REACT_APP_BASE_URL + '/api/profile',
headers: {
Authorization: `Bearer ${cleanData}`,
},
withCredentials: true,
});
setUser(tmpUser.data);
} catch (err) {
console.log(err);
}
};
getUser();
}, [data]);
const handleKeyPress = async (e)=>{
// console.log(`e in press= ${e.key}`)
if (e.key !== "Enter")
return ;
try{
console.log("code= ", code)
// const res = await api.post("/verifyOtp", {token: code})
const res = await axios({
method: 'POST',
url: 'http://' + process.env.REACT_APP_BASE_URL + '/api/verifyOtp',
headers: {
Authorization: `Bearer ${cleanData}`,
},
withCredentials: true,
data: { token: code }
});
console.log("res= ", res.data)
console.log("res= ", res)
if (res.data === 1)
{
console.log("registered")
// history.push('/login')
localStorage.setItem('token', `${cleanData}`); localStorage.setItem('token', `${cleanData}`);
console.log(`token= ${localStorage.getItem('token')}`) console.log(`prout token2= ${localStorage.getItem('token')}`);
window.location.replace("http://" + process.env.REACT_APP_BASE_URL + "/pong"); window.location.replace("http://" + process.env.REACT_APP_BASE_URL + "/pong");
// const path = 'http://' + process.env.REACT_APP_BASE_URL + '/';
// window.history.pushState({}, null, path);
// window.location.reload(false);
}
else
{
console.log("bad code")
//alert ?? retry
}
// redirect('/test')
}
catch(err){
console.log(err)
}
}
if (!user) {
// Render a loading indicator or return null while user is being fetched
return <h1>Loading...</h1>;
}
const cleanData = data.slice(1, -1); // Declare cleanData here as well
if (!user.otp_verified) {
console.log("false");
localStorage.setItem('token', `${cleanData}`);
console.log(`prout token2= ${localStorage.getItem('token')}`);
window.location.replace("http://" + process.env.REACT_APP_BASE_URL + "/pong");
return null; // or return a message or component indicating not verified
}
return (
<>
<h1>Double Auth</h1>
<input
onKeyDown={handleKeyPress}
type="text"
className="qr"
placeholder="6 Digits Code"
value={code}
onChange={(e) => setCode(e.target.value)}
/>
</>
);
} }
export default SuccessToken; export default SuccessToken;
// function SuccessToken() {
// const location = useLocation();
// const { data } = queryString.parse(location.search);
// if ( !data)
// {
// console.log("no data")
// return ;
// }
// const cleanData = data.slice(1, -1);
// const [code, setCode] = useState('');
// const [user, setUser] = useState(false);
// useEffect(()=> {
// const getUser = async ()=>{
// try {
// // const tmpUser = await api.get("/profile");
// const tmpUser = await axios({
// method: 'GET',
// url: 'http://' + process.env.REACT_APP_BASE_URL + '/api/profile',
// headers: {
// Authorization: `Bearer ${cleanData}`,
// },
// withCredentials: true,
// });
// setUser(tmpUser.data);
// // setUser(tmpUser.data);
// // if (tmpUser.data.otp_verified)
// // {
// // console.log("true");
// // return (
// // <>
// // <h1>Double Auth</h1>
// // <input
// // onKeyDown={handleKeyPress}
// // type="text"
// // className="qr"
// // placeholder="6 Digits Code"
// // value={code}
// // onChange={(e) => setCode(e.target.value)}
// // />
// // </>
// // )
// // }
// // else
// // {
// // console.log("false");
// // localStorage.setItem('token', `${cleanData}`);
// // console.log(`prout token2= ${localStorage.getItem('token')}`)
// // window.location.replace("http://" + process.env.REACT_APP_BASE_URL + "/pong");
// // }
// } catch(err) {
// console.log(err)
// }
// }
// getUser();
// }, []);
// const handleKeyPress = async (e)=>{
// // console.log(`e in press= ${e.key}`)
// if (e.key !== "Enter")
// return ;
// try{
// console.log("code= ", code)
// const res = await api.post("/verifyOtp", {token: code})
// console.log("res= ", res.data)
// console.log("res= ", res)
// if (res.data === 1)
// {
// console.log("registered")
// // history.push('/login')
// const path = 'http://' + process.env.REACT_APP_BASE_URL + '/';
// window.history.pushState({}, null, path);
// window.location.reload(false);
// }
// else
// {
// console.log("bad code")
// //alert ?? retry
// }
// // redirect('/test')
// }
// catch(err){
// console.log(err)
// }
// }
// console.log("start while...")
// while(user === false)
// ;
// console.log("end while")
// if (!user.otp_verified)
// {
// console.log("false");
// localStorage.setItem('token', `${cleanData}`);
// console.log(`prout token2= ${localStorage.getItem('token')}`)
// window.location.replace("http://" + process.env.REACT_APP_BASE_URL + "/pong");
// return ;
// }
// return (
// <>
// <h1>Double Auth</h1>
// <input
// onKeyDown={handleKeyPress}
// type="text"
// className="qr"
// placeholder="6 Digits Code"
// value={code}
// onChange={(e) => setCode(e.target.value)}
// />
// </>
// )
// }
// export default SuccessToken;