Php wordpress网站中所有页面的用户身份验证

Php wordpress网站中所有页面的用户身份验证,php,wordpress,Php,Wordpress,我想有一个wordpress网站只为授权用户。我想在主题的头文件中添加自定义php代码,检查特定用户是否有权访问该页面,如果没有,则将用户重定向到自定义登录页面。我还考虑在数据库中添加一个新表,以获取用户信息。有没有一个插件可以帮我做到这一点?我找不到任何验证。对wordpress站点所在的站点文件夹应用基本验证 在文件夹中创建一个.htaccess文件,如下所示,但使用您自己的路径和用户名: AuthUserFile /home/YOURACCOUNT/public_html/wordpres

我想有一个wordpress网站只为授权用户。我想在主题的头文件中添加自定义php代码,检查特定用户是否有权访问该页面,如果没有,则将用户重定向到自定义登录页面。我还考虑在数据库中添加一个新表,以获取用户信息。有没有一个插件可以帮我做到这一点?我找不到任何验证。

对wordpress站点所在的站点文件夹应用基本验证

在文件夹中创建一个.htaccess文件,如下所示,但使用您自己的路径和用户名:

AuthUserFile /home/YOURACCOUNT/public_html/wordpress/.htpasswd
AuthGroupFile /dev/null
AuthName "Authentication"
AuthType Basic
<LIMIT POST GET>
require valid-user YOURUSERNAME
</LIMIT> 
要将密码转换为MD5加密,请转到此处:


根据您的附加评论,尝试使用wordpress插件,使您的工作更轻松


嗯,通过一些恶劣的黑客攻击,我终于解决了这个问题。 在我的主题的header.php文件中,我在顶部添加了以下代码行:

if(session_id() == '') {
  session_start();
}
if (!$_SESSION['authenticated']) {
  header('Location: '.get_site_url().'/login.php');
}
我在项目的根文件夹中创建了一个自定义login.php文件,其中包含一个简单的登录表单,并使用以下代码行将其数据发布到另一个自定义文件webservice.php:

//webservice.php
<?php
    if(session_id() == '') {
        session_start();
    }
    $username = $_POST['username'] ? $_POST['username'] : '';
    $password = $_POST['password'] ? $_POST['password'] : '';

    if ($password && $username) {
        $response = file_get_contents("http://example.com/api/Accounts?username=".$username."&password=".$password);
        $json = json_decode($response);

        if ($json->{'Status'} == "Success") {
            $_SESSION['authenticated'] = true;
            echo "<META http-equiv=\"refresh\" content=\"0;URL=http://example.com/\">";
        }
        else {
            $_SESSION['authenticated'] = false;
            echo "<META http-equiv=\"refresh\" content=\"0;URL=http://example.com/login.php?incorrect=yes\">";
        }
    }
    else {
        echo "<META http-equiv=\"refresh\" content=\"0;URL=http://example.com/\">";
    }
然而,在另一个自定义filelogout.php中,我只取消设置了会话变量:

<?php
if(session_id() == '') {
    session_start();
}
if ($_SESSION['authenticated']) {
    $_SESSION['authenticated'] = false;
    echo "<META http-equiv=\"refresh\" content=\"0;URL=http://example.com/\">";
}
?>

我很想知道我的解决方案的缺点…

你有FTP访问网站文件夹的权限吗?但我想有一个自定义登录页面,甚至可能有一个用户注册页面。这样,如果我正确理解了您的解决方案,则只有一个用户可以访问该网站。基本上,基本身份验证不是我在mindWell中拥有的东西,然后创建一个用户数据库,然后通过数据库查找创建一个用户名和密码表单。这看起来很有希望。我会看一下然后再给你回复。
<?php
if(session_id() == '') {
    session_start();
}
if ($_SESSION['authenticated']) {
    $_SESSION['authenticated'] = false;
    echo "<META http-equiv=\"refresh\" content=\"0;URL=http://example.com/\">";
}
?>