首先 composer 安装  firebase/php-jwt

github:https://github.com/firebase/php-jwt

composer require firebase/php-jwt
使用

当用户登录时,如果有 token 并且没有过期,则得到用户信息,如果 token过期,或者是新用户,则生成一个token具体业务自已看着办,这里只讨论使用

下面是为用户颁发 token

public function getToken(){
$key = "huang"; //这里是自定义的一个随机字串,应该写在config文件中的,解密时也会用,相当 于加密中常用的 盐 salt
$token = [
"iss"=>"", //签发者 可以为空
"aud"=>"", //面象的用户,可以为空
"iat" => time(), //签发时间
"nbf" => time()+100, //在什么时候jwt开始生效 (这里表示生成100秒后才生效)
"exp" => time()+7200, //token 过期时间
"uid" => 123 //记录的userid的信息,这里是自已添加上去的,如果有其它信息,可以再添加数组的键值对
];
$jwt = JWT::encode($token,$key,"HS256"); //根据参数生成了 token
return json([
"token"=>$jwt
]);
}

上面生成了token并返回给的客户端,以后客户端再访问时,就带上 token 信息,就可以知道用户的信息了

方法如下

public function check(){
$jwt = input("token"); //上一步中返回给用户的token
$key = "huang"; //上一个方法中的 $key 本应该配置在 config文件中的
$info = JWT::decode($jwt,$key,["HS256"]); //解密jwt
return json($info)
}

测试一下

{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJpYXQiOjE1NDQ0NTcyMTAsIm5iZiI6MTU0NDQ1NzMxMCwiZXhwIjoxNTQ0NDY0NDEwLCJ1aWQiOjEyM30.detj950ILHtNrWJ6ze54DS4Y7y45EHqKoP9EWjQHSfE"}
以上是getToken返回的token

请求check方法,并传入 token

http://testtp5.test/index/index/check?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIiLCJhdWQiOiIiLCJpYXQiOjE1NDQ0NTcyMTAsIm5iZiI6MTU0NDQ1NzMxMCwiZXhwIjoxNTQ0NDY0NDEwLCJ1aWQiOjEyM30.detj950ILHtNrWJ6ze54DS4Y7y45EHqKoP9EWjQHSfE

返回结果

{
"iss": "",
"aud": "",
"iat": 1544457210,
"nbf": 1544457310,
"exp": 1544464410,
"uid": 123
}
从返回的结果中可以取到 uid  就可以得到 当前user的所有信息了

利用Redis和Jwt实现Token生成,存储,验证方法

tp5使用jwt生成token,做api的用户认证的更多相关文章

  1. 国服最强JWT生成Token做登录校验讲解,看完保证你学会!

    转载于:https://blog.csdn.net/u011277123/article/details/78918390 Free码农 2017-12-28 00:08:02 JWT简介 JWT(j ...

  2. JWT生成Token做登录校验

    一.JWT的优点 1.服务端不需要保存传统会话信息,没有跨域传输问题,减小服务器开销. 2.jwt构成简单,占用很少的字节,便于传输. 3.json格式通用,不同语言之间都可以使用. 二.使用JWT进 ...

  3. Laravel 5 中使用 JWT(Json Web Token) 实现基于API的用户认证

    在JavaScript前端技术大行其道的今天,我们通常只需在后台构建API提供给前端调用,并且后端仅仅设计为给前端移动App调用.用户认证是Web应用的重要组成部分,基于API的用户认证有两个最佳解决 ...

  4. 利用jwt生成token,用于http请求身份验证

    前段时间在做移动端接口过程中,考虑到安全性,所有移动端发送请求(除了登录请求)过程中进行token有效验证. 1.利用jwt生成token a.导入jwt相关包 <!-- jwt --> ...

  5. JWT 实现基于API的用户认证

    基于 JWT-Auth 实现 API 验证 如果想要了解其生成Token的算法原理,请自行查阅相关资料 需要提及的几点: 使用session存在的问题: session和cookie是为了解决http ...

  6. .NET6 JWT(生成Token令牌)

    一.Net 6环境下的.net core项目里如何使用JWT. 第一步,在Nuget引入JWT.Microsoft.AspNetCore.Authentication.JwtBearer这两个NuGe ...

  7. 使用 JWT 生成 Token 代码示例

    JSON Web Token,简称 JWT, 是一个开放的标准(RFC 7519),它定义了以一种紧凑的.自包含的 JSON 对象在各方之间安全传输信息的方式.该信息含有数字签名,可以被验证和信任. ...

  8. Token_使用JWT生成token

    1.token三部分 header   { "typ": "JWT", "alg": "HS256"   } paylo ...

  9. JWT生成token及过期处理方案

    业务场景 在前后分离场景下,越来越多的项目使用token作为接口的安全机制,APP端或者WEB端(使用VUE.REACTJS等构建)使用token与后端接口交互,以达到安全的目的.本文结合stacko ...

随机推荐

  1. JMeter 阶梯式加压测试插件 Stepping Thread Group

    在日常性能测试过程中,有时需要对被测对象不断的增加压力,直至达到某个值后,并持续运行一段时间.这里将借助jmeter插件模拟这种情况. 本文介绍在jmeter中,使用插件Stepping Thread ...

  2. Another Blog

    I also hold a blog with thoughts of English learning. Get there ===>. It's a private blog. Actual ...

  3. Nginx功能模块汇总

    主要文档 Nginx功能概述.为什么选择Nginx.Nginx安装.常见问题(FAQ).配置符号参考.调试 nginx.优化 Nginx.运行和控制Nginx 核心模块 Nginx事件模块.Nginx ...

  4. 声明式语法重写基于容器CICD构建流水线

    调试了一下午,一句话都不想说了,看代码. ----- 参考文档 https://blog.csdn.net/weixin_42010394/article/details/90670945 实践代码 ...

  5. 指向自身类型的成员指针的初始化,this不属于类对象的一部分

    有下面的一个简单的类: class CNullPointCall{public:    static void Test1();    void Test2();    void Test3(int  ...

  6. mysql架构精选

    ◆主从架构1.安装服务(主从) yum -y install mysql* /etc/init.d/mysqld start2.修改配置文件:/etc/my.conf(主从) vi /etc/my.c ...

  7. 逻辑回归原理,推导,sklearn应用

    目录 逻辑回归原理,推导,及sklearn中的使用 1 从线性回归过渡到逻辑回归 2 逻辑回归的损失函数 2.1 逻辑回归损失函数的推导 2.2 梯度下降法 2.3 正则化 3 用逻辑回归进行多分类 ...

  8. teb教程10 teb questions

    http://wiki.ros.org/teb_local_planner/Tutorials/Frequently%20Asked%20Questions

  9. compiz隐藏最大化窗口标题栏

    xfwm换了compiz试试,还行,挺方便.就是这个隐藏最大化窗口的标题栏没有现成的ui设置项,google到如下解决方案: 修改后立即生效. https://planetkris.com/2009/ ...

  10. InnoDB global status

    常见参数 Innodb_buffer_pool_pages_free 发现 Innodb_buffer_pool_pages_free 为0 ,则说明buffer_pool 已经被用光,需要增大 in ...