前言: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,问题解决

关于使用jwt编写接口时候对token判断时候错误的机制处理的更多相关文章

  1. [转] Spring Boot实战之Filter实现使用JWT进行接口认证

    [From] http://blog.csdn.net/sun_t89/article/details/51923017 Spring Boot实战之Filter实现使用JWT进行接口认证 jwt(j ...

  2. Angular调用Asp.net Core JWT Authentication接口

    基本思路是调用登录接口,获取token,使用token请求其他JWT接口: getHomeDetails(): Observable<HomeDetails> { let headers ...

  3. 应用JWT进行用户认证及Token的刷新

    本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及Token的刷新方案(ASP.NET Core 系列目录) 一.什么是JWT? JWT(json web token ...

  4. ASP.NET Core WebApi基于JWT实现接口授权验证

    一.ASP.Net Core WebApi JWT课程前言 我们知道,http协议本身是一种无状态的协议,而这就意味着如果用户向我们的应用提供了用户名和密码来进行用户认证,那么下一次请求时,用户还要再 ...

  5. 使用 Laravel-Swagger 编写接口文档(php)

    使用 Laravel-Swagger 编写接口文档 Table of Contents Swagger 文档管理 官方网站:https://swagger.io/ 快速编写你的 RESTFUL API ...

  6. ASP.NET Core 2.2 : 二十六. 应用JWT进行用户认证及Token的刷新

    来源:https://www.cnblogs.com/FlyLolo/p/ASPNETCore2_26.html 本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及T ...

  7. Java认证:JavaRunnable线程编写接口代码

    Java认证:JavaRunnable线程编写接口代码.JavaRunnable线程如何才能更好的适应目前的编程环境呢?下面我们就看看如何才能更好的进行相关环境.希望下面的文章对大家有所帮助.Java ...

  8. python编写接口初识一

    python编写接口这里用到的是他一个比较轻量级的框架 flask #!/usr/bin/python # -*- coding: UTF-8 -*- import flask,json server ...

  9. 在php中调用以及编写接口(转)

    如: http://localhost/openUser.php?act=get_user_list&type=json 在这里openUser.php相当于一个接口,其中get_user_l ...

随机推荐

  1. Docker 使用 Dockerfile 构建自己的镜像

    可以使用Dockerfile的配置文件方式进行构建自己的镜像 下面利用docker构建一个Caddy web服务器 构建脚本 Dockerfile有自己的命令,下面使用了一些比较常用的命令,更多的Do ...

  2. jquery实现静态柱形图(写死的数据,只为系统首页UI更美观)

    这段时间比较空闲,便阅读公司做好的项目的源代码,学习学习同事的开发思路. 在项目中使用图表可以很好地提高人机交互的友好度,开发的时候看到项目的首页有两个很小的柱形图,很漂亮,便找到对应的代码看了看,发 ...

  3. 好代码是管出来的——.Net中的代码规范工具及使用

    上一篇文章介绍了编码标准中一些常用的工具,本篇就具体来介绍如何使用它们来完成代码管理. 本文主要内容有: Roslyn简介 开发基于Roslyn的代码分析器 常用的基于Roslyn的代码分析器 在.N ...

  4. ASP.NET实现二维码

    using System;using System.Collections.Generic;using System.Drawing;using System.Linq;using System.Te ...

  5. FPGA设计千兆以太网MAC(2)——以太网协议及设计规划

    上篇该系列博文中通过MDIO接口实现了PHY芯片的状态检测,验证其已处于1000M 全双工工作模式.在设计MAC逻辑之前,要先清楚MAC与PHY之间的接口以及以太网协议细节,这样才能保证网络的兼容性. ...

  6. saiku环境搭建

    说明:搭建saiku环境,BI展示工具. 环境说明: os:windows7 jdk:jdk1.6.0_43 tomcat:apache-tomcat-7.0.62 saiku:saiku-ui-2. ...

  7. RuntimeException和Exception区别

    1.java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception. 2.Error是Throwable 的子类,用于指示合理的应用 ...

  8. 文本相似度 — TF-IDF和BM25算法

    1,$TF-IDF$算法 $TF$是指归一化后的词频,$IDF$是指逆文档频率.给定一个文档集合$D$,有$d_1, d_2, d_3, ......, d_n \in D$.文档集合总共包含$m$个 ...

  9. 创建pandas和sqlalchemy的j交互对象,方便于日常的数据库的增删改查(原创)

    #导入第三方库sqlalchemy的数据库引擎 from sqlalchemy import create_engine #导入科学计算库 import pandas as pd #导入绘图库 imp ...

  10. Java数据库学习之SQL语句动态拼接

    public class UserDaoImpl implements UserDao { @Override public List<User> getUserByPage(PageIn ...