use*_*381 5 php apache laravel
我需要一些关于以下主题的帮助和建议.
我的嘘声有一个简单的Apache服务器设置,并有一个简单的PHP身份验证 设置.只要使用这样的面板验证用户.
他/她可以访问在其后面运行的所有应用程序.换句话说,这个面板用作"门",如果你在门上,那么你就可以访问(当然在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,
]);
}
Run Code Online (Sandbox Code Playgroud)
但这会让用户每次刷新页面!但是没有更进一步的最佳方法是什么?
我需要一个单独的提供者(我测试了上面的代码AppServiceProvider)吗?
$this->user_id保存后怎么办这样的username事呢?
注意:我知道Laravel有基本的auth开箱即用,但这不起作用,因为用户还没有在我的数据库中.我需要先像上面那样创建它们.
首先,您应该检查数据库中是否已存在具有所提供用户名的用户。这样您就不会在每次刷新时创建新用户。然后您可以使用Auth::login($user);登录用户来使用authLaravel 提供的中间件(不是auth.basic!)。这样您就可以使用 Auth 外观在整个应用程序上访问用户并存储有关用户的附加信息:
if(isset($_SERVER))
{
if ( array_key_exists( 'PHP_AUTH_USER', $_SERVER ) ) {
$agent = $_SERVER['PHP_AUTH_USER']; //Request::server('PHP_AUTH_USER')
// Try to find an existing user, or create a new one if the user does not exist
$user = User::firstOrCreate([
'username' => $agent,
]);
// Authenticate the user
\Auth::loginUsingId($user->id);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |