mirror of
https://github.com/flarum/core.git
synced 2025-10-14 16:34:26 +02:00
Add cookie factory
This commit is contained in:
@@ -12,27 +12,41 @@
|
||||
namespace Flarum\Http;
|
||||
|
||||
use Dflydev\FigCookies\FigResponseCookies;
|
||||
use Dflydev\FigCookies\SetCookie;
|
||||
use Psr\Http\Message\ResponseInterface;
|
||||
|
||||
class Rememberer
|
||||
{
|
||||
protected $cookieName = 'flarum_remember';
|
||||
|
||||
/**
|
||||
* @var CookieFactory
|
||||
*/
|
||||
protected $cookie;
|
||||
|
||||
/**
|
||||
* Rememberer constructor.
|
||||
* @param CookieFactoy $cookie
|
||||
*/
|
||||
public function __construct(CookieFactory $cookie)
|
||||
{
|
||||
$this->cookie = $cookie;
|
||||
}
|
||||
|
||||
public function remember(ResponseInterface $response, AccessToken $token, $session = false)
|
||||
{
|
||||
$cookie = $this->createCookie()->withValue($token->id);
|
||||
$lifetime = null;
|
||||
|
||||
if (! $session) {
|
||||
$lifetime = 60 * 60 * 24 * 14;
|
||||
|
||||
$token->lifetime = $lifetime;
|
||||
$token->save();
|
||||
|
||||
$cookie = $cookie->withMaxAge($lifetime);
|
||||
}
|
||||
|
||||
return FigResponseCookies::set($response, $cookie);
|
||||
return FigResponseCookies::set(
|
||||
$response,
|
||||
$this->cookie->make($this->cookieName, $token->id, $lifetime)
|
||||
);
|
||||
}
|
||||
|
||||
public function rememberUser(ResponseInterface $response, $userId)
|
||||
@@ -46,11 +60,4 @@ class Rememberer
|
||||
{
|
||||
return FigResponseCookies::expire($response, $this->cookieName);
|
||||
}
|
||||
|
||||
private function createCookie()
|
||||
{
|
||||
return SetCookie::create($this->cookieName)
|
||||
->withPath('/')
|
||||
->withHttpOnly(true);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user