Maison >développement back-end >Problème PHP >Comment implémenter la vérification des jetons en PHP

Comment implémenter la vérification des jetons en PHP

Guanhui
Guanhuioriginal
2020-05-13 18:01:544567parcourir

Comment implémenter la vérification des jetons en PHP

Comment PHP implémente-t-il la vérification des jetons ? La partie des informations analysées est cryptée ; enfin, les données cryptées sont comparées à la signature analysée. Si elles sont identiques, la vérification est effectuée. réussi.


Exemple de code :

<?php
function check_token($token) {
    /**** api传来的token ****/
    if(!isset($token) || empty($token)) {
        $msg[&#39;code&#39;]=&#39;400&#39;;
        $msg[&#39;msg&#39;]=&#39;非法请求&#39;;
        return json_encode($msg,JSON_UNESCAPED_UNICODE);
    }
    //对比token
    $explode = explode(&#39;.&#39;,$token);
    //以.分割token为数组
    if(!empty($explode[0]) && !empty($explode[1]) && !empty($explode[2]) && !empty($explode[3]) ) {
        $info = $explode[0].&#39;.&#39;.$explode[1].&#39;.&#39;.$explode[2];
        //信息部分
        $true_signature = hash_hmac(&#39;md5&#39;,$info,&#39;siasqr&#39;);
        //正确的签名
        if(time() > $explode[2]) {
            $msg[&#39;code&#39;]=&#39;401&#39;;
            $msg[&#39;msg&#39;]=&#39;Token已过期,请重新登录&#39;;
            return json_encode($msg,JSON_UNESCAPED_UNICODE);
        }
        if ($true_signature == $explode[3]) {
            $msg[&#39;code&#39;]=&#39;200&#39;;
            $msg[&#39;msg&#39;]=&#39;Token合法&#39;;
            return json_encode($msg,JSON_UNESCAPED_UNICODE);
        } else {
            $msg[&#39;code&#39;]=&#39;400&#39;;
            $msg[&#39;msg&#39;]=&#39;Token不合法&#39;;
            return json_encode($msg,JSON_UNESCAPED_UNICODE);
        }
    } else {
        $msg[&#39;code&#39;]=&#39;400&#39;;
        $msg[&#39;msg&#39;]=&#39;Token不合法&#39;;
        return json_encode($msg,JSON_UNESCAPED_UNICODE);
    }
}

Tutoriel recommandé : "

Tutoriel PHP

"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn