ApiAdmin user-token

360截图170811067710199.png


首先来看公共请求部分,是作者加在http协议头里面的一些固定的字段参数,对应了一些限制类功能。首先来看user-token实现部分。作者在文档里没有提到。起码是在今天以前没有提到。所以我们就要去看源代码。

/**
     * TODO::需要根据实际情况另外改写
     * 检测用户登录情况  检测通过请赋予USER_INFO值
     */
    private function checkLogin() {
        $userToken = $this->request->header('user-token', '');
        if ($this->apiInfo['needLogin']) {
            if (!$userToken) {
                return json(['code' => ReturnCode::AUTH_ERROR, 'msg' => '缺少user-token', 'data' => []]);
            }
        }
        if ($userToken) {
            $userInfo = cache('wx:openId:' . $userToken);
            var_dump(cache('wx:openId:' . $userToken));
            if (!is_array($userInfo) || !isset($userInfo['openId'])) {
                return json(['code' => ReturnCode::AUTH_ERROR, 'msg' => 'user-token不匹配', 'data' => []]);
            }
            ApiLog::setUserInfo($userInfo);
        }
    }

这里作者的意见也是自己实现。这里只是演示一下流程,剩余的自由发挥。

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/7/2/002
 * Time: 11:52
 */
namespace app\api\controller;
use think\Cache;
class User extends Base
{
    /**
     * 验证user_token
     */
    public function getVar(){
       echo "验证了token";
    }
    /**
     * 设置缓存
     */
    public function setVar(){
        cache('wx:openId:' . "aaaaaaaaaaa",['openId'=>'ccc','aa'=>'cc']);
        echo "缓存已经设置";
    }
}

这里写了两个接口,第一个是验证user_token,第二个是设置缓存。首先访问第二个函数。

360截图17571119204919.png

可以看到缓存已经设置。这个时候在来访问验证token的函数。

360截图17001020315824.png


你要先设置好head头才可以访问正确。这里我也验证了access_token所有都填写了一下。如果不填aaaaaaaaaaa而填写其他的。可以看一下效果。

360截图18180715819089.png可以看到为不匹配。这里要说一下他的验证方式。 

1、获取协议头里的user-token数据。

2、判断是否需要判断user-token

3、获取缓存:(格式):wx:openId:xxxxxxxxxx 这里的xxxxxxxxxx是你要预先设置好的缓存名字。

4、判断缓存是否是数组格式

5、判断缓存是否存在openId字段


如果上述条件都满足的话就会user-token验证通过。


ApiAdmin user-token


本站如无特别说明即为原创,转而告知:(http://iwonmo.com/archives/1333.html)

标签: apiadmin, user-token, token

添加新评论