使用链接在没有密码的情况下安全地登录用户?

时间:2018-05-25 作者:Slbox

我想使用应用程序中的链接将用户登录到浏览器中的Wordpress,但我担心这是否可以安全地完成。

显然,使用任何类型的静态URL模式似乎都是不可能的。我是否可以利用其他一些方法来安全地执行此操作,而无需花费一周时间构建自定义机制?

我猜不是,但在可能重新发明车轮之前,我想检查一下。非常感谢。

1 个回复
SO网友:Abhik

是的,你可以。但是,您需要知道用户ID或用户名。

创建一个链接,将其中任何一个作为数据属性,并用它进行ajax调用。成功后,您只需重新加载页面,用户即可登录。

如果您知道用户id。。

function wpse_304392_login_by_id() {

    $user_id = $_POST[\'user_id\'];

    $user = get_user_by( \'id\', $user_id ); 
    if( $user ) {
        wp_set_current_user( $user_id, $user->user_login );
        wp_set_auth_cookie( $user_id );
        do_action( \'wp_login\', $user->user_login );
    }

    wp_die(); //Essential for AJAX calls
}
如果您知道用户名。。

function wpse_304392_login_by_username() {

    $username = $_POST[\'username\'];
    $user = get_user_by( \'login\', username ); 
    $user_id = $user->ID;

    if( $user ) {
        wp_set_current_user( $user_id, $username );
        wp_set_auth_cookie( $user_id );
        do_action( \'wp_login\', $username );
    }

    wp_die(); //Essential for AJAX calls
}
别忘了做一次临时检查以确保安全。

结束

相关推荐

Wp-login.php注册/丢失按钮的密码链接?

如何设置wp登录的样式。php注册/丢失密码链接到按钮,以简化移动UI?在哪里可以找到将ahref附加到提交的HTML?那个按钮的样式是哪个CSS文件?无需更改对操作的调用,只需将文本链接更改为按钮即可!任何帮助或指导都将不胜感激!