导读:本篇文章恰卡编程网来给大家介绍有关php怎么保存token的相关内容,希望对大家有所帮助,一起来看看吧。
本文目录一览:
- 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的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~