【发布时间】:2020-11-05 00:42:47
【问题描述】:
我有一个关于 laravel 框架(版本 5.2)和身份验证的问题。
我有 2 个代表软件的域。我们称他们为https://azure.mydomain.com 和https://azuresoftware.mydomain.com。
laravel 应用程序托管在域 https://azuresoftware.mydomain.com 上。 https://azure.mydomain.com 只是一个 cms 框架,它提供有关网站的一些信息。
现在我想显示不同的菜单,如果用户在https://azure.mydomain.com 上登录或未登录。
我想,我可以向https://azuresoftware.mydomain.com/ 发出fetch 请求并使用laravel 方法Auth::check() 检查用户是否已经登录。我知道这是一个cors 获取请求,但这不是问题。我已经允许来自https://azure.mydomain.com 的IIS 网络服务器请求。该请求工作正常,也只是一个简单的请求。
但实际上Auth::check() 总是返回false,即使我在软件端登录也是如此。
这是我目前的代码:
<script>
fetch('https://azuresoftware.mydomain.com/checkLogin', {
method: 'GET',
headers: {
'Content-Type': 'text/plain'
}
})
.then(function(res) {
return res.json()
})
.then(function(data) {
if(data.isLoggedIn) {
// do some stuff...
}
else
{
// do some other stuff...
}
});
</script>
routes.php:
Route::group(['middleware' => 'web'], function () {
...
Route::get('checkLogin', function() {
return json_encode(['isLoggedIn'=>\Auth::check()]);
});
...
我确定,我忘记了一些重要的东西,为什么它不能以这种方式工作,所以我很高兴有任何提示。非常感谢!
【问题讨论】:
标签: laravel authentication laravel-5 cors