Antes y después del final de la separación o para soportar múltiples aplicaciones web, a continuación, la sesión original en el uso de cookies o habrá un gran problema
, así que utilizamos el token
uso
1. Pasar la cuenta de aterrizaje contraseña delante [como] un código de verificación al backend
2. La autenticación de back-end de información de registro, generar una identidad única token es obligado para el usuario, y volvió al frente
3. El extremo delantero de la ficha almacenado en la memoria intermedia, cada solicitud, en un encabezado o un URL contador transmite al extremo posterior
4. El extremo delantero de la parte trasera de la ficha transmitida desde token para comparación, verificar el tiempo de caducidad y el resultado se devuelve al extremo trasero
Diseño de base de datos:
código PHP:
// comprobar si el aterrizaje pública función cehckLogin () { SI ( vaciar ( $ del este -> cabeceras [ 'símbolo' ])) { AException ( 'verificación símbolo falla', 401 ); } $ usuario = Modelo ( 'el Usuario') -> DONDE ([ 'símbolo' => $ los esta -> cabeceras [ 'símbolo']]) -> find (); SI (! $ usuario ) { AException ( 'verificación símbolo falla', 401 ); } SI ( El usuario $ -> token_timeout < Tiempo ()) { AException ( 'señal caduca',401 ); } // símbolo续期 $ code_out = tiempo () + 60 * 60 * 24 * config ( 'IAuth.token_time' ); modelo ( 'Usuario') -> donde ([ 'símbolo' => $ this -> cabeceras [ 'símbolo']]) -> actualización ([ 'token_timeout' => $ code_out ]); devolver $ usuario -> Identificación; } // 设置唯一的señal pública estática función setAppLoginToken ( $ id de usuario = ''verdadera ))); $ cadena = sha1 ( $ str . $ id de usuario ); devolver $ cadena ; }
// 更新señal pública función updateToken ( $ id , y $ simbólico , y $ token_timeout ) { $ símbolo = 0 ; $ token_timeout = 0 ; $ código = IAuth :: setAppLoginToken ( $ id ); $ code_out = tiempo () + 60 * 60 * 24 * config ( 'IAuth.token_time' ); $ res = $ this -> donde ([ 'id' => $ id ]) -> actualización ( [ 'símbolo' => $ código , 'token_timeout' => $ code_out ] ); si ( $ res ) { $ símbolo = $ código ; $ token_timeout = $ code_out ; } }