zoukankan      html  css  js  c++  java
  • app登录access_user_token安全性

    public function isLogin1()
    {   
        //获取header头的access_user_token
        $access_user_token = $this->headers['access-user-token'];
        if( empty($access_user_token) ) {
            return false;
        }
        //判断access_user_token是否唯一
        if( Cache::get($access_user_token) ) {
            return false;
        }
        //解密
        $result = Aes::decrypt($access_user_token);
        if( empty($result) ) {
            return false;
        }
        //判断access_user_token 是否是原本token+"&&"+13位时间戳
        if( !preg_match('/&&/', $result) ) {
            return false;
        }
        list($token, $time) = explode('&&', $result);
        if( empty($token) || empty($time) ) {
            return false;
        }
        //判断是否在有效期 10秒内有效
        $time = ceil($time / 1000);
        if( time() - $time > 10 ) {
            return false;
        }
        //根据token查询数据
        $user = User::get(['token' => $token]);
        //判断token是否有效,用户状态是否正确
        if( empty($user) || $user['status'] != 1 || time() > $user['time_out'] ) {
    
            return false;
        }
        //缓存access_user_token 保证仅一次有效
        Cache::set($access_user_token, 1, 601);
        $this->user = $user->toArray();
        return true;
    
    }
  • 相关阅读:
    Web API入门二(实例)
    Web API 入门一
    模板编程
    Unity3D中的AI架构模型
    Linux系列
    LCS记录
    hadoop使用问题
    AOP之Castle DynamicProxy 动态代理
    python 之readability与BeautifulSoup
    django rest_framework--入门教程3
  • 原文地址:https://www.cnblogs.com/aln0825/p/13436556.html
Copyright © 2011-2022 走看看