Solución:
También estoy en una “prueba y error” por eso, pero esta respuesta de Github de Google Chrome Labs me ayudó un poco. Lo definí en mi archivo principal y funcionó, bueno, solo para un dominio de terceros. Todavía estoy haciendo pruebas, pero estoy ansioso por actualizar esta respuesta con una mejor solución 🙂
EDITAR: Estoy usando PHP 7.4 ahora, y esta sintaxis funciona bien (septiembre de 2020):
$cookie_options = array(
'expires' => time() + 60*60*24*30,
'path' => "https://foroayuda.es/",
'domain' => '.domain.com', // leading dot for compatibility or use subdomain
'secure' => true, // or false
'httponly' => false, // or false
'samesite' => 'None' // None || Lax || Strict
);
setcookie('cors-cookie', 'my-site-cookie', $cookie_options);
Si usted tiene PHP 7.2 o inferior (como respondió Robert a continuación):
setcookie('key', 'value', time()+(7*24*3600), "/; SameSite=None; Secure");
Si su host ya está actualizado a PHP 7.3, puedes usar (gracias al comentario de Mahn):
setcookie('cookieName', 'cookieValue', [
'expires' => time()+(7*24*3600,
'path' => "https://newbedev.com/",
'domain' => 'domain.com',
'samesite' => 'None',
'secure' => true,
'httponly' => true
]);
Otra cosa que puede intentar para verificar las cookies es habilitar la marca a continuación, que, en sus propias palabras, “agregará mensajes de advertencia a la consola para cada cookie que pueda verse afectada por este cambio”:
chrome://flags/#cookie-deprecation-messages
Vea el código completo en: https://github.com/GoogleChromeLabs/samesite-examples/blob/master/php.md, tienen el código para same-site-cookies
también.
A medida que viene la nueva característica, SameSite=None
las cookies también deben estar marcadas como Secure
o serán rechazados.
Se puede encontrar más información sobre el cambio en las actualizaciones de cromo y en esta publicación de blog.
Nota: no del todo relacionado directamente con la pregunta, pero podría ser útil para otros que aterrizaron aquí, ya que fue mi preocupación al principio durante el desarrollo de mi sitio web:
si ve la advertencia de la pregunta que enumera algunos sitios de terceros (en mi caso fue google.com, eh), eso significa ellos necesita arreglarlo y no tiene nada que ver con su sitio. Por supuesto, a menos que la advertencia mencione su sitio, en cuyo caso agregar Secure
debería arreglarlo.
>= PHP 7.3
setcookie('key', 'value', ['samesite' => 'None', 'secure' => true]);
< PHP 7.3
exploit the path
setcookie('key', 'value', time()+(7*24*3600), "/; SameSite=None; Secure");
Emitting javascript
echo "<script>document.cookie('key=value; SameSite=None; Secure');</script>";