gpt4 book ai didi

php - 通过 Windows 身份验证在 Laravel 中对用户进行身份验证

转载 作者:可可西里 更新时间:2023-10-31 22:53:28 25 4
gpt4 key购买 nike

我在 IIS 7.5 上的 Windows 域中运行 PHP。

Windows 身份验证是通过 IIS 启用的,因此可以通过 PHP 中的 $_SERVER['AUTH_USER'] 访问用户 DOMAIN\USERNAME。

我刚刚为一个新的内部网站安装了 Laravel 5,并且需要一种使用单点登录方式在 Laravel 中验证用户身份的方法。

最终用户应该在 Laravel 中进行身份验证,而无需在任何地方登录,因为他们已经在域中进行了身份验证..

我四处搜索,几乎找不到任何相关内容!

关于这个有什么写的吗?当然这是一个很常见的用例?我应该从哪里开始阅读,或者是否有人可以直接提供帮助?

最佳答案

假设 $_SERVER['AUTH_USER'] 已设置,您可以在 App\Http\Middleware\Authenticate 中使用如下内容:

<?php namespace App\Http\Middleware;

use Closure;
use App\User;
use Illuminate\Contracts\Auth\Guard;

class Authenticate {

/**
* The Guard implementation.
*
* @var Guard
*/
protected $auth;

/**
* Create a new filter instance.
*
* @param Guard $auth
* @return void
*/
public function __construct(Guard $auth)
{
$this->auth = $auth;
}

/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($request->server('AUTH_USER') && ($user = User::where('username', $request->server('AUTH_USER'))->first()))
{
$this->auth->login($user);
}
else
{
return redirect()->guest('auth/login');
}

return $next($request);
}

}

现在添加 middleware to your routes .

然而,这确实假设您的用户已经存在。如果用户不存在,您可以更改重定向以动态创建用户。

关于php - 通过 Windows 身份验证在 Laravel 中对用户进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30999372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com