Foros del Web » Programando para Internet » PHP »

Como hacer un login y llevar el token

Estas en el tema de Como hacer un login y llevar el token en el foro de PHP en Foros del Web. Hola a todos. Estoy tratando de realizar un login de usuario en el cual se genere un token y se lleve junto con los demas ...
  #1 (permalink)  
Antiguo 17/12/2015, 04:57
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Como hacer un login y llevar el token

Hola a todos.

Estoy tratando de realizar un login de usuario en el cual se genere un token y se lleve junto con los demas datos.

El proceso es muy simple. Pongo una imagen aqui y lo explico debajo (junto con las partes relevantes del código).



En la pagina de login simplemente como siempre: el usuario escribe user y password. El formulario nos lleva a login.php.

Código HTML:
Ver original
  1. <form method="post" action="login.php">
  2.   <input type="text" name="nombre"/>
  3.   <input type="password" name="pass"/>
  4.   <input type="submit"/>
  5. </form>

En login.php compruebo que todo vaya bien y en tal caso genero el token y hago un redireccionamiento a index.php con un header: Location

Código PHP:
<?php
session_start
();
//codigo no relevante..
//si ha ido todo bien:
$_SESSION['token'] = 'f78akjs98je...';
header('Location: http://sitioweb/index.php');
exit;
?>
En index.php debo comprobar al principio de todo que el token es el correcto.

Código PHP:
session_start();
//aqui tengo que comprobar que el token "recibido" 
//(aunque en este codigo no envie aun nada) coincide con $_SESSION['token'] 
La idea "preferida" seria llevarlo en una cabecera, pero no ha habido manera de hacerlo. He probado mil maneras pero no se como llevarlo en la cabecera de la petición.

He googleado bastante sobre este asunto pero en la red todo el mundo utiliza curl. Yo no utilizo curl aunque si eso fuese imprescindible, tampoco tengo mayor problema en hacerlo. De hecho lo he intentado pero como no tengo ni idea de curl, no he sabido hacer nada (evidentemente..).

Alguien me podría echar un cable acerca de como hacer esto por favor?
  #2 (permalink)  
Antiguo 17/12/2015, 05:07
 
Fecha de Ingreso: diciembre-2015
Mensajes: 8
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Como hacer un login y llevar el token

No es cuestión de usar curl.

Puedes hacer lo siguiente usa el header de esta forma

login.php
Poner el token en el header
Código PHP:
header("auth-token: ".$token); 

index.php
Recuperar el token del header
Código PHP:
$token getallheaders()["auth-token"]; 

Un saludo
  #3 (permalink)  
Antiguo 17/12/2015, 05:48
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Como hacer un login y llevar el token

Pues no me lo encuentra.

Es decir, en login.php, si que figura entre las cabeceras de la respuesta:

Código:
auth-token:	ba61ec0a2ec2662d0dee3db2ad68bcf1
Pero en index.php nada de nada.

(esto de firefox)
Código:
Cabeceras de la respuesta Δ0ms
Server:	Apache
Keep-Alive:	timeout=5, max=98
Date:	Thu, 17 Dec 2015 11:40:36 GMT
Content-Type:	text/html; charset=UTF-8
Content-Length:	117
Connection:	Keep-Alive
esto de hacer un print_r
Código:
Array
(
    [Host] => localhost
    [User-Agent] => Mozilla/5.0 (Windows NT 5.1; rv:42.0) Gecko/20100101 Firefox/42.0
    [Accept] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [Accept-Language] => es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
    [Accept-Encoding] => gzip, deflate
    [DNT] => 1
    [Referer] => http://localhost/index.php
    [Cookie] => PHPSESSID=uvn71d1ihrqatumt22dmcc8ss5
    [Connection] => keep-alive
)
No obstante, creo que lo que necesito es agregarlo en la cabecera de la petición, no?
  #4 (permalink)  
Antiguo 17/12/2015, 07:13
 
Fecha de Ingreso: diciembre-2015
Mensajes: 8
Antigüedad: 8 años, 11 meses
Puntos: 0
Respuesta: Como hacer un login y llevar el token

Prueba a cambiar el getallheaders() por apache_request_headers()
  #5 (permalink)  
Antiguo 17/12/2015, 07:28
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Como hacer un login y llevar el token

nada de nada. Sigue exactamente igual.

Concretamente:
En login.php

Código:
Cabeceras de la respuesta Δ141ms
Server:	Apache
Pragma:	no-cache
Location:	http://localhost/index.php
Keep-Alive:	timeout=5, max=99
Expires:	Thu, 19 Nov 1981 08:52:00 GMT
Date:	Thu, 17 Dec 2015 13:29:40 GMT
Content-Type:	text/html; charset=UTF-8
Content-Length:	0
Connection:	Keep-Alive
Cache-Control:	no-store, no-cache, must-revalidate, post-check=0, pre-check=0
auth-token:	bb88130326d30047df287db09ec38ae0
En index.php

Código:
Cabeceras de la petición 14:29:40.000
User-Agent:	Mozilla/5.0 (Windows NT 5.1; rv:42.0) Gecko/20100101 Firefox/42.0
Referer:	http://localhost/main.php
Host:	localhost
DNT:	1
Connection:	keep-alive
Accept-Language:	es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding:	gzip, deflate
Accept:	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
(main.php es la pagina de login).

Última edición por oms02; 17/12/2015 a las 07:38

Etiquetas: formulario, login, token
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:16.