Поэтому я разрабатываю приложение SPA на angular и использую woocomerce для бэкэнда ... Мне нужно управлять операциями регистрации и входа / выхода клиентов (когда пользователь регистрируется, отправьте электронное письмо с подтверждением на введенный адрес электронной почты, забыл пароль) механизм, et c ..). К сожалению, API WordPress не поддерживает такие операции, поэтому я должен написать плагин, который реализует эту функциональность. Я начал разрабатывать плагин API для этой цели. Я написал метод, который создает нового пользователя в базе данных. метод регистрации
function registerCustomer(WP_REST_Request $req){
$customerDetails = json_decode($req -> get_body(), true );
$user = get_user_by("email", $customerDetails["customerEmail"]);
if(!$user){
$userId = wc_create_new_customer($customerDetails["customerEmail"],$customerDetails["customerEmail"],$customerDetails["customerPassword"]);
//update user details...
update_user_meta($userId,"first_name", $customerDetails["firstName"]); //customer first name
update_user_meta($userId,"last_name",$customerDetails["lastName"]); //customer last name
update_user_meta($userId,"shipping_address_1",$customerDetails["address"]); //customer address
update_user_meta($userId,"billing_phone",$customerDetails["phone"]); //phone
update_user_meta($userId,"shipping_city",$customerDetails["city"]); //city
update_user_meta($userId,"customerBornDate",$customerDetails["bordDate"]);
return new WP_REST_Response(array("status"=>"201","message"=>"Customer was created successfully!"),201);
}
else{
return new WP_REST_Response(array("status"=>"409","message"=>"Email is already registered!"),409);
}
}
Теперь для почты я планирую использовать phpmailer. У меня вопрос по поводу входа в систему. Мне нужно реализовать механизм аутентификации? Я думал о JWT, я видел плагин, который реализует этот механизм, но я решил искать более сильный механизм аутентификации (с сохранением состояния). У меня есть еще один вопрос. Я ошибаюсь на моем пути? возможно есть плагин, который делает эту функциональность. что мне здесь не хватает?
заранее благодарю за помощь!