Laravel-检查用户是否在另一台服务器上通过了身份验证

时间:2018-08-27 07:34:14

标签: laravel authentication

假设我在一个主机上有一个laravel站点,而另一个主机上仅用于存储某些特定文件。在第二个主机中,我想检查用户是否在laravel网站上通过了身份验证,然后授予他(她)对该文件的访问权限。我该怎么办?

2 个答案:

答案 0 :(得分:1)

您几乎可以只使用普通的PHP代码,而无需接触其他服务器上的Laravel框架。

例如,创建自己的自定义cookie或会话变量,其中包含来自身份验证的令牌。使逻辑类似$authToken = md5($user->username) . "." . md5($user->password);,然后将其添加到Cookie或$_SESSION[]变量中。

从这里,在用于存储的其他服务器上创建一个小型后端,然后执行类似的操作。

<?php
/////////////
/**
 * Here there should be database connection logic.
 */
/////////////
$posts = (object) $_POST;

if ($_SERVER['REQUEST_METHOD'] == "POST")
{
    $postArray = [
        'authToken',
        'user'
    ];

    foreach($postArray as $post)
    {
        if (!isset($_POST[$post]))
        {
            return false;
        }
    }

    $query = htmlspecialchars("SELECT * FROM users WHERE id=" . $posts->user);

    $result = mysqli_query($connection, $query);

    $row = mysqli_fetch_all($result);

    $db_stack = md5($row['username']) . "." . md5($row['password']);
    if ($posts->authToken != $db_stack)
    {
        return false;
    }

    // Return the requested file here.
}

答案 1 :(得分:0)

如果(Auth :: check())$ file = file_get_contents($ urlToFile);