千家信息网

token PHP使用方法是怎样的

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,今天就跟大家聊聊有关token PHP使用方法是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。PHP中token的使用方法:1、客户端用
千家信息网最后更新 2025年02月01日token PHP使用方法是怎样的

今天就跟大家聊聊有关token PHP使用方法是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

PHP中token的使用方法:1、客户端用户输入用户名密码后执行登录,请求token;2、使用JWT这种规范,进行生成token;3、验证token的时效性;4、客户端拿token请求数据。

本文操作环境:windows7系统、PHP7.1版、Dell G3电脑。

token PHP使用方法是什么?

php token的生成和使用

1. 为什么要使用tokent进行登录

前后端分离或者为了支持多个web应用,那么原来的cookies或者session在使用上就会有很大的问题
cookie和session认证需要在同一主域名下才可以进行认证(目前可以把session存储在redis内进行解决)。

2. 解决方案

oauth3 和 jwt

jwt :是一种安全标准。基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息信息的合法性;如果验证成功,会产生并返回一个token(令牌)
OAuth3 :是一个安全的授权框架。它详细描述了系统中不同角色、用户、服务前端应用(比如API),以及客户端(比如网站或移动APP)之间怎么实现相互认证。
(这里采用jwt,这种JSON Web Token 这种方式进行认证)

3. 生成方法

  1. 头部:加密类型

  2. 说明:消息内容

  3. key:一个随机码用来加密

  4. 上面三部分使用.连接起来,然后使用hs256进行加密,生成tokent

4. 详细生成方法

1). 头部通常由两部分组成:令牌的类型(即JWT)和所使用的加密算法(如:SHA256或者RSA)

{      "alg": "HS256",      "typ": "JWT"}

然后,这个json被Base64Url编码,成为第一部分

2). 有效载荷是声明。声明是关于实体的部分。

{      "exp": "1525785339",      "sub": "1234567890",      "name": "John Doe",      "admin": true}

然后将有效载荷Base64Url进行编码,成为第二部分
(PS:此信息尽管受到篡改保护,但是任何人都可以阅读。除非加密,否则不要将重要信息放在里面)

3). 使用一个加密key

4). 签名,需要使用编码后的第一部分,编码后的第二部分,然后一个关键的key。采用第一部分里的加密算法进行签名

HMACSHA256(          base64UrlEncode(header) + "." + base64UrlEncode(payload),          key)

该签名用于验证消息是否有篡改。
(PHP使用crypt方法进行加密。注意:SHA-256用于防篡改,AES-256用于加密两个概念不一样)

5. token存放位置

通常应该在请求的header头中的 Authorization字段使用 Bearer模式添加JWT(Authorization: Bearer ) (当然你也可以放在任意位置,如URL后面当成一个参数传递,只要客户端能识别就行,不过既然JWT是个规范,那么我们最好还是按照规范来)

undefined

6. 使用方式

  1. 客户端用户输入用户名密码后执行登录,请求token

  2. 服务器收到请求后,使用JWT这种规范,进行生成token,返回给客户端

  3. 客户端收到token以后,解密后,验证token的时效性(token的过期时间),保存起来

  4. 客户端拿token请求数据

  5. 服务器收到token解密后,验证用户身份,验证时效性,然后验证用户

7. 缺点

1. 无法作废已颁布的令牌(对token刷新使用期限)2. 不易应对过期数据(支持 token 失效)

所以如果你使用了 token ,那么如果 token 被捕获到,那么就可以进行伪造进行冒充。所以如果安全比较高的话,还是建议使用oauth3

看完上述内容,你们对token PHP使用方法是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

用户 加密 客户 客户端 验证 方法 生成 服务 认证 使用方法 内容 服务器 编码 安全 令牌 信息 密码 数据 时效 时效性 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全黑白平面设计 医疗器械软件网络安全文档 合肥互联网软件开发培训 市北区ios软件开发公司 山海战记服务器 软件开发科任职条件 国税局网络安全建设 自组织网络技术包括什么 许昌千云网络技术怎么样 状态机如何保存为数据库 华为网络技术学院官网 绍兴软件开发驻场代理公司 青浦区优势软件开发密度 知网数据库中的字段限制符号 服务器机柜英文 绍兴通信网络技术报价 云南诚信积分管理软件开发 北京智能化网络技术服务哪家好 mc服务器管理员隐身指令 vs2013修改数据库 市北区ios软件开发公司 不动产网络安全应急预案 江阴手动软件开发产品介绍 浙江大学软件工程网络安全 谷歌软件开发模型 授课数据库有三个基本表 网络安全主题教学设计 django实现数据库网页显示 党组网络安全责任制检查考核办法 java 多线程导入数据库
0