token PHP使用方法是什么

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. 生成方法

头部:加密类型

说明:消息内容

key:一个随机码用来加密

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

4. 详细生成方法

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

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

登录后复制

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

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

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

登录后复制

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

3). 使用一个加密key

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

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

登录后复制

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

5. token存放位置

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

推荐学习:《PHP视频教程》

6. 使用方式

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

7. 缺点

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

登录后复制

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

以上就是token PHP使用方法是什么的详细内容,更多请关注【创想鸟】其它相关文章!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    php怎么实现txt下载文件

    2025-2-24 14:55:48

    编程技术

    如何解决php类的自动加载失败问题

    2025-2-24 14:56:04

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索