如何在Laravel-5上实现子域名的单点登录? 我有:
我尝试在/ config / session中设置域名和驱动程序参数:
'driver' => 'cookie'
或
'driver' => 'file'
和
'domain' => '.domain.com'
或
'domain' => null
无论如何它都不起作用。无论如何,我得到401(未经授权)。为什么呢?
在控制器中(它是标准的laravel认证):
public function __construct()
{
$this->middleware('auth');
}
答案 0 :(得分:1)
如果您希望在Laravel上的子域名(例如api.domain.com
和portal.domain.com
)之间进行单点注册,则必须执行此操作:
为api使用下一个过滤器(例如在控制器cunstructor中):
if (!Auth::check())
$this->middleware('auth.basic.once');
设置会话(config/session
):
'domain' => '.domain.com'
在jQuery.ajax中使用下一个参数:
crossdomain: true
xhrFields: {withCredentials: true}
标题您的回复(例如.htaccess)必须包含:
Header set Access-Control-Allow-Origin "http://api.domain.com"
Header set Access-Control-Allow-Credentials true
现在,您可以从portal.domain.com
向api.domain.com
发出AJAX请求,并将基本身份验证的简单HTTP请求发送到api.domain.com