zoukankan      html  css  js  c++  java
  • 关于使用jwt编写接口时候对token判断时候错误的机制处理

    前言:php在使用接口时候很多时候都是需要带token的,如果不对token进行校验那么别人就能够随意编写一个token进入你的接口拿数据,应该怎样处理呢?

    //生成token
        public function testT(){
            //$key = "example_key2343534@#%$#^$&%^kprgokgdr";
            $privateKey = file_get_contents('../config/openssl/privateKey.txt');
            $exp = time() +  7200;
            $token = array(
            "iss" => "",
            "aud" => "",
            "iat" => time(),//签发时间
            //"nbf" => time()+10,//生效时间
            'exp' => $exp,//过期时间
            );
            // $jwt = JWT::encode($token, $key);
            $jwt = JWT::encode($token, $privateKey, 'RS256');
            halt($jwt);
            return json(['token'=>$jwt,'exp'=>date('Y-m-d H-i-s',$exp)]);
        }
    //验证token
        public function rosetoke(){
            //halt($token);
            // dump($token);
            // dump($key);
            // halt(null);
            // $token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJpYXQiOjE1NDgyMDk5OTYsIm5iZiI6MTU0ODIxMDAwNiwiZXhwIjoxNTQ4MjE3MTk2fQ.k9yYHqgFj6VNXJOtAQD5BTxh7CW_o0qvfV3C3GRkNFw";
            $publicKey  = file_get_contents('../config/openssl/publicKey.txt');
            $jwt = "nSU2y_yDVSxSVt31urSJbPocu99xRYghROhrrr5TrIYFKBegjKfzu5qYHm8dSZXkqYRv-qupY4uRwjR6G";
            try{
                $decoded = JWT::decode($jwt, $publicKey, array('RS256'));
            }catch(Exception $e){
                return false;
            }
            var_dump($decoded);
            halt($decoded);

    由于多次尝试解密用假的数据但是内部机制并没有返回一个false而是返回了报错的行数,这样显然是不符合我的要求,因此灵机一动用异常抛出改变内部机制,返回false值这样就可以实现给到前台数据是false,问题解决

    IT这条路,当你懂得越多的时候,那么你不懂的也就会越多了.
  • 相关阅读:
    【LeetCode】141. Linked List Cycle
    linux配置java环境变量(详细)
    CUDA中的流与事件
    多语言协作与二进制交互【转】
    /usr/bin/ld: cannot find -lz
    机器学习经典书籍[转]
    Valgrind使用[转]
    Instructions函数对照表:02 xmmintrin.h与SSE指令集[转]
    Eclipse中10个最有用的快捷键组合
    C语言调试的几种方法
  • 原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10308439.html
Copyright © 2011-2022 走看看