【发布时间】:2016-03-19 22:50:01
【问题描述】:
我需要一些关于以下主题的帮助和建议。
我的嘘声有一个简单的 Apache 服务器设置,也有 a simple php auth 设置。一旦使用这样的面板验证用户。
他/她可以访问其背后运行的所有应用程序。所以换句话说,这个面板作为一个“门”,如果你在门外,那么你就可以访问(当然,Web 服务器上运行着权限表)。
问题
我使用 Laravel 5 构建的应用程序需要在门后运行,这意味着应用程序需要知道用户是谁。
使用$_SERVER['PHP_AUTH_USER'];我可以获取当前登录的username。
但是,如果我想跟踪我的应用程序上的 user's 操作怎么办?我需要$this->user_id 之类的东西,对吗?
所以我在想,一旦用户通过“门”,我就会获取他的 username 并从中创建一个用户,然后将其保存在我在 Laravel 后面运行的数据库中。
if(isset($_SERVER))
{
if ( array_key_exists( 'PHP_AUTH_USER', $_SERVER ) ) {
$agent = $_SERVER['PHP_AUTH_USER']; //Request::server('PHP_AUTH_USER')
}
$user = User::create([
'username' => $agent,
]);
}
但这会让用户每次刷新页面!但是,没有进一步说明,最好的方法是什么?
我是否需要单独的提供程序(我在
AppServiceProvider中测试了上面的代码)?保存
username后,我如何才能执行类似$this->user_id的操作?
注意:我知道 Laravel 有开箱即用的基本身份验证,但这不起作用,因为用户还没有在我的数据库中。我需要像上面一样首先创建它们。
【问题讨论】:
-
有多少用户可以访问该页面?它是对任何受众公开可用,还是将由 N 个固定用户使用的内部页面?
-
公司内部的@lesssugar 用户拥有所有访问权限(当然在您通过登录之后)。它不能从互联网上公开访问(如果你的意思是这样的话)