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