老师 你好 请问:token为什么从header获取啊 token键返回给小程序 为什么会存储至header呢?谢谢

来源:9-3 实现Token身份权限体系

156的

2019-07-04

写回答

2回答

156的

提问者

2019-07-06

好的  明白了


这个是前端的传送:

getPreOrder: function (token, orderID) {

if (token) {

wx.request({

url: baseUrl + '/pay/pre_order?XDEBUG_SESSION_START=14531',

method: 'POST',

header: {

token: token

},


这个是后端的获取:

public static function getCurrentTokenVar($key)
{
   $token = Request::instance()->header('token');
   

//获取键值为token的值
   $vars = Cache::get($token);
   if (!$vars)
   {
       throw new TokenException();
   }
   else {
       if(!is_array($vars))
       {
           $vars = json_decode($vars, true);
       }
       if (array_key_exists($key, $vars)) {
           return $vars[$key];
       }
       else{
           throw new Exception('尝试获取的Token变量并不存在');
       }
   }
}


token的存储:
private function saveToCache($wxResult)
{
   $key = self::generateToken();
   $value = json_encode($wxResult);
   $expire_in = config('setting.token_expire_in');
   //存储  key为token  
   $result = cache($key, $value, $expire_in);

   if (!$result){
       throw new TokenException([
           'msg' => '服务器缓存异常',
           'errorCode' => 10005
       ]);
   }
   return $key;
}


ajax接受返回的token

getToken: function () {

//调用登录接口

wx.login({

success: function (res) {

var code = res.code;

console.log('code:');

console.log(code);

wx.request({

url: baseUrl + '/token/user',

data: {

code: code

},

method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT

success: function (res) {

console.log('res.data:');

console.log(res.data);

wx.setStorageSync('token', res.data.token);

},



并没有存储在header

token从header获取是因为  我们在前端设置的  

明白了

谢谢老师回复!明白了


0
0

7七月

2019-07-04

token返回给小程序 哪儿放在header里返回的?

0
0

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程