老师 你好 请问: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获取是因为 我们在前端设置的
明白了
谢谢老师回复!明白了
00 -
7七月
2019-07-04
token返回给小程序 哪儿放在header里返回的?
00
相似问题