# Token介紹
* * * * *
### access_token(訪問令牌)介紹
之前在后臺介紹的地方已經提過token了,此處來詳細講解一下。
訪問令牌的作用是讓咱們所有的系統接口不是別人想用就可以使用的,哪怕文章查詢接口 也不希望不法分子可以直接調用,下面咱們看下 訪問令牌如何生成的。
~~~
// 獲取訪問token
function get_access_token()
{
return md5('OneBase' . date("Ymd") . API_KEY);
}
~~~
就這么一個小函數丫,access_token 每天都會產生變化,并且依賴 API_KEY。

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
- 自動緩存
- 全自動緩存
- 索引
- 數據簽名
- 全自動事務
- 隊列