password reset

This commit is contained in:
Peter Hoppe
2023-02-09 16:50:36 +01:00
parent 9256000f9d
commit e3e99e67f9
4 changed files with 126 additions and 3 deletions

View File

@ -0,0 +1,68 @@
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: access");
header("Access-Control-Allow-Methods: POST");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
session_start();
require __DIR__.'/classes/Database.php';
require __DIR__.'/classes/lib.php';
$db_connection = new Database();
$conn = $db_connection->dbConnection();
$data = json_decode(file_get_contents("php://input"));
$returnData = new CMsg(0);
//IF REQUEST METHOD IS NOT EQUAL TO POST
if($_SERVER["REQUEST_METHOD"] != "POST")
{
$returnData = new CMsg(0,404,'Page Not Found! REQUEST_METHOD');
echo $returnData->jsonarray();
return;
}
// CHECKING EMPTY FIELDS
if(
!isset($data->pwtoken)
|| empty(trim($data->pwtoken))
)
{
$fields = ['fields' => ['pwtoken']];
$returnData = new CMsg(0,422,'Please Fill in all Required Fields!',$fields);
echo $returnData->jsonarray();
return;
}
// IF THERE ARE NO EMPTY FIELDS THEN-
$pwtoken = trim($data->pwtoken);
try
{
$stmt = $conn->prepare("SELECT * FROM `dogs` WHERE `pwtoken`=?");
$stmt->execute([$pwtoken]);
if($stmt->rowCount())
{
$row = $stmt->fetch(PDO::FETCH_ASSOC);
}
else
{
$returnData = new CMsg(
0,
406,
'Passwordtoken: '. $pwtoken . ' not valid, nothing changed!'
);
}
}
catch(PDOException $e)
{
$returnData = new CMsg(0,500,$e->getMessage());
}
echo $returnData->jsonarray();
?>

View File

@ -0,0 +1,21 @@
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: access");
header("Access-Control-Allow-Methods: POST");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
session_start();
require __DIR__.'/classes/Database.php';
require __DIR__.'/classes/lib.php';
$db_connection = new Database();
$conn = $db_connection->dbConnection();
$data = json_decode(file_get_contents("php://input"));
var_dump($data);
var_dump($_POST);
?>

View File

@ -1,7 +1,8 @@
import React, { useState } from 'react'
import React, { useState } from 'react';
import toast, { Toaster } from 'react-hot-toast';
import { Link, useParams } from 'react-router-dom';
import { passwordReset } from '../services/PhpApi';
import { passwordReset, getPwToken } from '../services/PhpApi';
import useSWR from 'swr';
import './InputForm.css';
export default function PasswordReset()
@ -14,6 +15,11 @@ export default function PasswordReset()
password2:''
});
const { data, error, isLoading } = useSWR({'ptoken': passwordToken}, getPwToken);
// data ist dogdata, logindata holt sich getProfilData.php aus $_SESSION
if (error) return (<div>failed to load</div>);
if (isLoading) return (<div>loading...</div>);
const onChangeInput = (e: React.FormEvent<HTMLInputElement> ) => {
setFormData({
...formData,

View File

@ -239,7 +239,15 @@ export const logOut = () =>
})
.catch((err) => console.error(err));
}
/**
*
* @param form_data {
password1: string,
password2: string,
passwordToken: string
}
* @returns
*/
export const passwordReset = async (form_data:
FormData) =>
{
@ -256,6 +264,26 @@ export const passwordReset = async (form_data:
}
}
/**
*
* @param pwtoken object {'pwtoken': pwtoken }
* @returns
*/
export const getPwToken = async (pwtoken: any) =>
{
try
{
const {data} = await Axios.post('getPwToken.php', pwtoken);
console.log('Api getPwToken');
console.log(data);
return data;
}
catch(err)
{
return {success:0, message:'getPwToken Server Error!'};
}
}
export const wantNewPw = async ({email}:{email: string}) =>
{
try