laravel - Laravel - 检查用户是否在另一台服务器上进行了身份验证
问题描述
假设我在一个主机上有一个 laravel 站点,另一个主机只是用于存储一些特定的文件。在第二台主机中,我想检查用户是否在 laravel 站点上经过身份验证,然后我让他/她访问该文件。我怎样才能做到这一点?
解决方案
你几乎可以只使用普通的 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.
}
推荐阅读
- c# - 提交 devexpress 后隐藏参数面板
- python-3.x - 如何使用 python 将数据写入或附加到 s3 存储桶中已经存在的文件中?
- java - 如何使用 Selenium WebDriver 中的日期选择器选择特定日期
- python - 在 Python 中从 JSON 字符串中提取数据时出错(使用 Redshift)
- python - python:涉及幂级数问题的效率
- android - 如何在 TextWatcher 中关闭 AlertDialog
- javascript - 传单创建瓷砖
- excel - Excel - 清理财务数据集以仅包含最新交易
- python - ValueError: view limit minimum -36761.69947916667 小于 1 并且是无效的 Matplotlib 日期值。
- html - 内部元素作为标签的单选按钮