Wordpress REST API - 发送重置密码链接 [英] Wordpress REST API - send reset password link

查看:30
本文介绍了Wordpress REST API - 发送重置密码链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从我的应用程序创建一个请求.(iOS 和 Android - 使用 Xamarin 编码).

说明:

请求应触发 WordPress action=lostpassword.- 用户收到一封电子邮件,要求在浏览器中重置其密码.

用户将能够设置新密码.WordPress 发送一个链接到电子邮件 - 用户必须在其中验证他更改了密码.是否有机会通过对 REST API 的请求来执行此操作.

也许有类似的想法?

我已经试过了:

  1. 文档中提供了功能但对我不起作用的插件
  2. 手动调用 wp-login.php?action=lostpassword with body

<块引用>

{"redirect_to": "","user_login": "name@provider.de","wp-submit": "Neues+Passwort"}

解决方案

创建自定义 api

网址

https://yourdomain/api/forgot_password.php

参数

登录:manoj.infoways@gmail.com

在root中创建文件夹api并创建文件forgot_password.php

忘记密码.php

 '0', 'msg' => '请输入登录用户信息' );回声 json_encode( $json );出口;}$userdata = get_user_by('email', $login);如果(空($userdata)){$userdata = get_user_by('登录', $login);}如果(空($userdata)){$json = array( 'code' => '101', 'msg' => '找不到用户' );回声 json_encode( $json );出口;}$user = new WP_User( intval( $userdata->ID ) );$reset_key = get_password_reset_key( $user );$wc_emails = WC()->mailer()->get_emails();$wc_emails['WC_Email_Customer_Reset_Password']->trigger( $user->user_login, $reset_key );$json = array( 'code' => '200', 'msg' => '密码重置链接已发送至您注册的邮箱' );回声 json_encode( $json );出口;?>

login 是要记住的参数名称.

它对我来说是 100% 有效的尝试

I want to create a request from my application. (iOS and Android - Coded with Xamarin).

Explaination:

The request should trigger the WordPress action=lostpassword. - The user receives an email to reset his password in browser.

OR

The user will be able to set a new password. WordPress send a link to email - where the user has to verify, that he changed the password. Is there any chance to do this with a request to the REST API.

Maybe any similar ideas?

I have already tried:

  1. Plugins where function was given in documentation but not worked for me
  2. Manualy called wp-login.php?action=lostpassword with body

{ "redirect_to": "", "user_login": "name@provider.de", "wp-submit": "Neues+Passwort" }

解决方案

Create your custom api

URL

https://yourdomain/api/forgot_password.php

Parameter

login:manoj.infoways@gmail.com

Create folder api in root and create file forgot_password.php

forgot_password.php

<?php include '../wp-load.php';

$login = $_REQUEST['login']; 

if ( empty( $login ) ) {
    $json = array( 'code' => '0', 'msg' => 'Please enter login user detail' );
    echo json_encode( $json );
    exit;     
}

$userdata = get_user_by( 'email', $login); 

if ( empty( $userdata ) ) {
    $userdata = get_user_by( 'login', $login );
}

if ( empty( $userdata ) ) {
    $json = array( 'code' => '101', 'msg' => 'User not found' );
    echo json_encode( $json );
    exit;
}

$user      = new WP_User( intval( $userdata->ID ) ); 
$reset_key = get_password_reset_key( $user ); 
$wc_emails = WC()->mailer()->get_emails(); 
$wc_emails['WC_Email_Customer_Reset_Password']->trigger( $user->user_login, $reset_key );


$json = array( 'code' => '200', 'msg' => 'Password reset link has been sent to your registered email' );
echo json_encode( $json );
exit;

?>

login is parameter name keep in mind.

its working 100% for me try it

这篇关于Wordpress REST API - 发送重置密码链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆