# Token介绍
* * * * *
### access_token(访问令牌)介绍
之前在后台介绍的地方已经提过token了,此处来详细讲解一下。
访问令牌的作用是让咱们所有的系统接口不是别人想用就可以使用的,哪怕文章查询接口 也不希望不法分子可以直接调用,下面咱们看下 访问令牌如何生成的。
~~~
// 获取访问token
function get_access_token()
{
return md5('OneBase' . date("Ymd") . API_KEY);
}
~~~
就这么一个小函数丫,access_token 每天都会产生变化,并且依赖 API_KEY。
![](https://box.kancloud.cn/94f558d555b29ef27eafe2a1f78b19c7_1913x576.png)
API_KEY, 可在后台自己设置,比如 咱们场景如下:接口需要被 wap端和app端使用。
那么咱们只需要将这个算法告知wap研发人员和app端工程师就好啦,然后将API_KEY告诉他,他就可以自己生成access_token咯,这样就可以确保访问咱们接口滴 都是自己人,当然再加上个IP限制就更安全啦。
* * * * *
### user_token(用户令牌)介绍
上面咱们知道了如何生成访问令牌,这样咱们就可以操作不需要用户登录的所有接口咯,如果想操作 修改密码接口咋办?
不好意思,需要从登录接口拿user_token,然后传递给修改密码接口才行.
user_token 怎么生成的?
~~~
public static function tokenSign($member)
{
$key = API_KEY . JWT_KEY;
$jwt_data = ['member_id' => $member['id'], 'nickname' => $member['nickname'], 'username' => $member['username'], 'create_time' => $member['create_time']];
$token = [
"iss" => "OneBase JWT", // 签发者
"iat" => TIME_NOW, // 签发时间
"exp" => TIME_NOW + TIME_NOW, // 过期时间
"aud" => 'OneBase', // 接收方
"sub" => 'OneBase', // 面向的用户
"data" => $jwt_data
];
$jwt = JWT::encode($token, $key);
$jwt_data['user_token'] = $jwt;
return $jwt_data;
}
~~~
看到了吧, 是通过 API_KEY 与 JWT_KEY 进行 JWT签发的,JWT相关知识此处不再讲解,有兴趣的童鞋可以搜索一下喔。
那么 JWT_KEY 在哪?
往上看,那个系统设置那个图,都是后台设置的。
为了安全起见,建议系统运营之前修改下这两个KEY。
- 序言
- 基础
- 安装环境
- 安装演示
- 规范
- 目录
- 介绍
- 后台介绍
- 后台首页
- 会员管理
- 系统管理
- 系统设置与配置管理
- 菜单管理
- 系统回收站
- 服务管理
- 插件管理
- 文章管理
- 接口管理
- 优化维护
- SEO管理
- 数据库
- 文件清理
- 行为日志
- 执行记录
- 统计分析
- 接口介绍
- 接口文档
- 错误码设计
- Token介绍
- 前台介绍
- 架构
- 架构总览
- 生命周期
- 入口文件
- 模块设计
- 依赖注入
- 控制器架构
- 逻辑架构
- 验证架构
- 服务架构
- 模型架构
- 行为架构
- 插件架构
- 配置
- 配置介绍
- 配置加载
- 配置扩展
- 请求
- 请求信息
- 日志
- 后台行为日志
- 系统执行日志
- 框架日志
- 数据
- 数据库设计
- 数据字典
- 数据库操作
- 事务控制
- 混合操作
- 实战
- 控制器
- 逻辑与验证
- 视图与模型
- 插件研发
- 服务研发
- 接口研发
- 杂项
- 数据导入导出
- 二维码条形码
- 邮件发送
- 云存储服务
- 支付服务
- 短信服务
- 微信分享
- 生成海报
- 聊天室
- PJAX
- Demo
- Widget
- 附录
- 常量参考
- 配置参考
- 函数参考
- 进阶
- Redis
- 自动缓存
- 全自动缓存
- 索引
- 数据签名
- 全自动事务
- 队列