verificación de la identidad del testigo de API

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 ; 
        } 
    }

 

Supongo que te gusta

Origin www.cnblogs.com/cl94/p/12507961.html
Recomendado
Clasificación