搜索
系统检测到您的用户名不符合规范:

JWT 如何阻止抛出异常

浏览:2937 发布日期:2017年09月11日 分类:求助交流
刚用了JWT做身份验证,

在这里下了 jwt,里面有例子。
https://github.com/ktamas77/firebase-php

我写了两个程序,1.php , 2.php

1.php 产生加密串,2.php 通过get获取加密串,这样是可以解开,并还原数据,

但,我故意在get给2.php的加密串中,修改加密串,就会抛出异常。
我不需要异常,平时没怎么用异常。还没有试验好,哪位有经验?

1.php

<?php

require("./Firebase/JWT/JWT.php");

use \Firebase\JWT\JWT;

//$key = "example_key";

$key = "jfdksajfkl;dsajfkdjsaklfdajffdsafdsfdsfdsfdsklfdsafdsafdsafdsdsajlkfdsa";

$token = array(
"iss" => "http://example.org",
"aud" => "http://example.com",
"userid" => '10001',
"username" => 'baby',
"truename" => 'a little boy',
"mobile" => '1335648522',


//"iat" => 1356999524,
//"nbf" => 1357000000
);

//生成密钥
$jwt = JWT::encode($token, $key);

echo $jwt;






2.php

use \Firebase\JWT\JWT;

$key = "example_key";

$key = "jfdksajfkl;dsajfkdjsaklfdajffdsafdsfdsfdsfdsklfdsafdsafdsafdsdsajlkfdsa";

$jwt = $str;


$decoded = JWT::decode($jwt, $key, array('HS256'));

var_dump($decoded);
echo "<hr />";



生成加密串:

localhost/1.php

得到:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwidXNlcmlkIjoiMTAwMDEiLCJ1c2VybmFtZSI6ImJhYnkiLCJ0cnVlbmFtZSI6ImEgbGl0dGxlIGJveSIsIm1vYmlsZSI6IjEzMzU2NDg1MjIifQ.9_SIzSonrft-BMqaKEp_KZzjwuSxgjHWeFc4cKhDXV8



获取加密串:

localhost/2.php?str=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwidXNlcmlkIjoiMTAwMDEiLCJ1c2VybmFtZSI6ImJhYnkiLCJ0cnVlbmFtZSI6ImEgbGl0dGxlIGJveSIsIm1vYmlsZSI6IjEzMzU2NDg1MjIifQ.9_SIzSonrft-BMqaKEp_KZzjwuSxgjHWeFc4cKhDXV8



如果我故意把加密串的第一个字母"e",修改为"f"

在运行解密:
localhost/2.php?str=fyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9leGFtcGxlLm9yZyIsImF1ZCI6Imh0dHA6XC9cL2V4YW1wbGUuY29tIiwidXNlcmlkIjoiMTAwMDEiLCJ1c2VybmFtZSI6ImJhYnkiLCJ0cnVlbmFtZSI6ImEgbGl0dGxlIGJveSIsIm1vYmlsZSI6IjEzMzU2NDg1MjIifQ.9_SIzSonrft-BMqaKEp_KZzjwuSxgjHWeFc4cKhDXV8

就会抛出异常,怎样使之不抛出异常,而是返回false呢?
最佳答案
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
50030
积分:1129 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /