其他分享
首页 > 其他分享> > pyg电商实战3

pyg电商实战3

作者:互联网

6.4 退出接口

① 设置路由,application/route.php中,adminapi域名路由部分,增加代码如下

//验证码图片
Route::get('logout', 'adminapi/login/logout');

1562848720369

② 创建logout方法

application/adminapi/controller/Login.php中 创建logout方法

/**
 * 后台退出接口
 */
public function logout()
{
    //清空token  将需清空的token存入缓存,再次使用时,会读取缓存进行判断
    $token = \Token::getRequestToken();
    $delete_token = cache('delete_token') ?: [];
    $delete_token[] = $token;
    cache('delete_token', $delete_token, 86400);
    $this->ok();
}

6.5 登录检测

除了登录相关接口,其他接口都需要登录后才能访问。

在application/adminapi/controller/BaseApi.php中进行检测。

① 设置无需检测方法列表

//无需进行登录检测的请求
protected $no_login = ['login/login', 'login/captcha'];

② 进行检测

 try{
     $path = strtolower($this->request->controller()) . '/' . $this->request->action();
     if(!in_array($path, $this->no_login)){
         $user_id = \tools\jwt\Token::getUserId();
         //登录验证
         if(empty($user_id)){
             $this->fail('未登录或Token无效', 403);
         }
         //将获取的用户id 设置到请求信息中
         $this->request->get(['user_id' => $user_id]);
         $this->request->post(['user_id' => $user_id]);
     }
 }catch(\Exception $e){
     $this->fail('服务异常,请检查token令牌', 403);
 }

测试: 将 index控制器继承 BaseApi, 浏览器访问 http://adminapi.pyg.com

1562923668783

总结:

项目搭建和配置、数据表设计、BaseApi基础控制器类(跨域处理、响应方法)

验证码接口、登录接口、退出接口、登录检测功能

标签:实战,登录,接口,token,user,login,电商,id,pyg
来源: https://blog.csdn.net/qq_61302398/article/details/121572514