token PHP使用方法是什么

藏色散人
发布: 2021-09-21 09:21:51
原创
3177人浏览过
PHP中token的使用方法:1、客户端用户输入用户名密码后执行登录,请求token;2、使用JWT这种规范,进行生成token;3、验证token的时效性;4、客户端拿token请求数据。

token PHP使用方法是什么

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

token PHP使用方法是什么?

php token的生成和使用

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

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

立即学习PHP免费学习笔记(深入)”;

2. 解决方案

oauth2 和 jwt

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

3. 生成方法

  1. 头部:加密类型

  2. 说明:消息内容

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

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

    微信二级防封域名
    微信二级防封域名

    防封域名方法千千种,我们只做最简单且有用的这一种。微信域名防封是指通过技术手段来实现预付措施,一切说自己完全可以防封的那都是不可能的,一切说什么免死域名不会死的那也是吹牛逼的。我们正在做的是让我们的推广域名寿命更长一点,成本更低一点,效果更好一点。本源码采用 ASP+ACCESS 搭建,由于要用到二级域名,所以需要使用独享云虚机或者云服务器,不支持虚拟主机使用,不支持本地测试。目前这是免费测试版,

    微信二级防封域名 0
    查看详情 微信二级防封域名

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是个规范,那么我们最好还是按照规范来)

推荐学习:《PHP视频教程

6. 使用方式

  1. 客户端用户输入用户名密码后执行登录,请求token
  2. 服务器收到请求后,使用JWT这种规范,进行生成token,返回给客户端
  3. 客户端收到token以后,解密后,验证token的时效性(token的过期时间),保存起来
  4. 客户端拿token请求数据
  5. 服务器收到token解密后,验证用户身份,验证时效性,然后验证用户

7. 缺点

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

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

以上就是token PHP使用方法是什么的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号