php怎么保存token(2023年最新整理)

2023-03-08 22:01:03 5 0
卡卡

导读:本篇文章恰卡编程网来给大家介绍有关php怎么保存token的相关内容,希望对大家有所帮助,一起来看看吧。

本文目录一览:

php怎么保存token(2023年最新整理)

  • 1、php 开发接口 怎么设计token比较合适
  • 2、Php用户登陆后的token一般怎么生成的?app端
  • 3、PostMan设置环境变量保存登录Token
  • 4、php中的token怎么用
  • 5、php登录成功后生成分token怎么获取

php 开发接口 怎么设计token比较合适

每登录一次返回给接口一个token,这个token会存储在单独的表里,每次APP关系到用户的操作都必须要携带token,根据token来解码出是哪个用户。这种方法也可以做其他设备登录踢出。一般都是这么个做法。token的生成类似cookie的密码加密,我是这么做的,当然有很多种方法,只要你能加密能解密就行。下面是phpcms里面的一个经典的方法,我一般拿来做cookie加密,制作token来使用。

?php

/**

* 字符串加密、解密函数

*

* @param    string    $txt        字符串

* @param    string    $operation    ENCODE为加密,DECODE为解密,可选参数,默认为ENCODE,

* @param    string    $key        密钥:数字、字母、下划线

* @param    string    $expiry        过期时间

* @return    string

*/

function sys_auth($string, $operation = 'ENCODE', $key = '', $expiry = 0) {

    $ckey_length = 4;

    $key = md5($key != '' ? $key : C('COOKIE_AUTH_KEY'));

    $keya = md5(substr($key, 0, 16));

    $keyb = md5(substr($key, 16, 16));

    $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';

    $cryptkey = $keya.md5($keya.$keyc);

    $key_length = strlen($cryptkey);

    $string = $operation == 'DECODE' ? base64_decode(strtr(substr($string, $ckey_length), '-_', '+/')) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;

    $string_length = strlen($string);

    $result = '';

    $box = range(0, 255);

    $rndkey = array();

    for($i = 0; $i = 255; $i++) {

        $rndkey[$i] = ord($cryptkey[$i % $key_length]);

    }

    for($j = $i = 0; $i  256; $i++) {

        $j = ($j + $box[$i] + $rndkey[$i]) % 256;

        $tmp = $box[$i];

        $box[$i] = $box[$j];

        $box[$j] = $tmp;

    }

    for($a = $j = $i = 0; $i  $string_length; $i++) {

        $a = ($a + 1) % 256;

        $j = ($j + $box[$a]) % 256;

        $tmp = $box[$a];

        $box[$a] = $box[$j];

        $box[$j] = $tmp;

        $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));

    }

    if($operation == 'DECODE') {

        if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time()  0)  substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {

            return substr($result, 26);

        }else{

            return '';

        }

    }else{

        return $keyc.rtrim(strtr(base64_encode($result), '+/', '-_'), '=');

    }

}

?

Php用户登陆后的token一般怎么生成的?app端

这个需要php后端生成,当登录成功的时候,后端通过用一些信息通过算法组合成token,返回给app端,app端接收保存。这个token尽量做成可以还原解析

PostMan设置环境变量保存登录Token

工作中有这种需求,测试接口时需要先登录,然后把登录成功的Token和Uid等信息传入获取个人信息接口的请求参数中。这时可以使用postman的环境变量保存token和UId。

电脑:mac

postman版本: 8.0.10

环境变量中的token和uid会自动填充。

php中的token怎么用

token用的地方还是很多,比如登录,提交数据等等 ,这里举个例子吧。

/* 

* PHP简单利用token防止表单重复提交 

* 此处理方法纯粹是为了给初学者参考 

*/  

session_start();  

function set_token()  

{  

 $_SESSION['token'] = md5(microtime(true));  

}  

function valid_token()  

{  

 $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false;  

 set_token();  

 return $return;  

}  

//如果token为空则生成一个token  

if( !isset($_SESSION['token'] )  

 || $_SESSION['token'] == '' )  

{  

 set_token();  

}  

  

if(isset($_POST['test'])){  

 if(!valid_token()){  

  echo "token error";  

 }else{  

  echo time();  

 }  

}  

?  

form method=post action=""  

 input type="hidden" name="token" value="?=$_SESSION['token']?"  

 input type="text" name="test" value="value"  

 input type="submit"  

/form

php登录成功后生成分token怎么获取

客户端必须在某个路径下保存用户的登录数据,每次打开app会自动寻找保存的登录数据,然后那到数据加密一下形成token,请求php后台,和数据库的保存的token对比一下(联网环境下),一样则登录成功,但是用户很可能会清理缓存数据,把在客户端保存的登录数据清除,所以没有太绝对的自动登录。

结语:以上就是恰卡编程网为大家介绍的关于php怎么保存token的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

收藏
分享
海报
0 条评论
5
上一篇:怎么夸PHP? 下一篇:宝塔php安装目录在哪里?

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码