【发布时间】:2016-12-25 07:57:43
【问题描述】:
td;dr:我正在向 auth-request 发送 JSON 响应,但缺少 session-cookie。
我正在使用类似于Illuminate\Foundation\Auth\AuthenticatesUsers 的登录方法。在我的情况下,它以 JSON 格式发送的响应并且没有呈现视图。这是控制器代码:
class DashboardController extends Controller
{
use AuthenticatesAndRegistersUsers, ThrottlesLogins;
protected $guard = 'web';
public function login(LoginRequest $request)
{
$throttles = $this->isUsingThrottlesLoginsTrait();
if ($throttles && $lockedOut = $this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
return $this->sendLockoutResponse($request);
}
$credentials = $this->getCredentials($request);
if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) {
Auth::user()->incrementLoginCounter();
return $this->handleUserWasAuthenticated($request, $throttles);
}
if ($throttles && ! $lockedOut) {
$this->incrementLoginAttempts($request);
}
return $this->sendFailedLoginResponse($request);
}
}
它与 Laravel 的 Trait 基本相同。
问题:响应中没有发送 cookie。
这是我所知道的:
- 数据库中用户表的 remember_token 列设置正确
- 我可以用
response()-> ... ->cookie('name', 'value')手动设置cookies - 手动设置的 cookie 在响应中正确发送
- 保护驱动程序设置为
session,提供程序设置为App\User类 - 会话驱动是
file,config是默认的laravel配置 - Web 中间件与默认相同,Csrf-Middleware 在该端点上已关闭。
我的期望:最好的案例 - 解决问题的方法,或者任何关于我可以测试以找出它为什么不起作用的提示和想法。
【问题讨论】:
标签: php laravel cookies laravel-5.2