什么是Token?
Token可以理解为令牌,服务端通过验证Token,来判断你是否有这个操作的权限。Token的重要特性是有效性,一般Token只在一定时间范围内有效。下图是登录模块的一个流程图,展现出Token的一个基本应用。
简单Token的实现
一个简单的Token,可以由密钥,时间戳,内容生成。在网络传输过程中,一般通过base64_encode编码传输。服务端通过base64_decode解码之后,在验证Token的有效性。Token的一种生成方式如下。
Token存储在哪里?
Token根据实际应用类型不同,可以分为一下三种方式存储。
-
存在MySQL类型数据库中。这样做的好处,可以存储的数量大,数据持久化。
-
存在内存中,如Cache。优点就是,验证速度快。
-
不存储,每次服务器通过算法验证Token的有效性。
在github开源项目:https://github.com/moyiblog/JWT