php的token怎么生成的

php的token怎么生成的

内容导读

收集整理的这篇技术教程文章主要介绍了php的token怎么生成的,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1537字,纯文字阅读大概需要3分钟

内容图文

前后端分离或者为了支持多个web应用,那么原来的cookies或者session在使用上就会有很大的问题

cookie和session认证需要在同一主域名下才可以进行认证(目前可以把session存储在redis内进行解决)。

解决方案

oauth2 和 jwt (推荐学习:PHP视频教程)

jwt :是一种安全标准。基本思路就是用户提供用户名和密码给认证服务器,服务器验证用户提交信息信息的合法性;如果验证成功,会产生并返回一个token(令牌)

OAuth2 :是一个安全的授权框架。它详细描述了系统中不同角色、用户、服务前端应用(比如API),以及客户端(比如网站或移动APP)之间怎么实现相互认证。(这里采用jwt,这种JSON Web Token 这种方式进行认证)

生成方法

头部:加密类型

说明:消息内容

key:一个随机码用来加密

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

详细生成方法

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用于加密两个概念不一样)

以上就是php的token怎么生成的的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php的token怎么生成的全部内容,希望文章能够帮你解决php的token怎么生成的所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com