>[danger]每次访问接口时,都必须携带4个公共参数,如果时强制用户登录的接口,还需要携带cowcms_userid参数
| 参数名称 | 参数描述 |
| --- | --- |
| appid | 接口网站分配个请求网站的appid |
| timestamp | 请求时间戳,该值和当前时间差不能大于7200(默认7200秒,时间时间在后台设置) |
| nonceStr | 随机字符串 |
| signature | 请求签名 |
| cowcms_userid | 登录用户id 32位字符串,该参数在用户登录时,返回给前端的用户登录凭证,前端需要保存该凭证,在调用强制用户登录的接口时必传该参数 |
>[info] 请求签名 ,将 timestamp, nonceStr,appsecret通过字典排序 ,然后按照key=value&key=value拼接整字符串,通过后台设置的加密类型进行加密
```
$data = [
'appsecret'=>'71f813843b4f9aa1b37e4cb3952e48906a80e660',//接口网站分配给请求网站的秘钥
'timestamp'=>time(),//时间戳
'nonceStr'=>getRandChar(6),//随机字符
];
$type = "sha1"; //在接口网站设置的加密类型 sha1|md5
$sign = exeFun('getSignature',[$data,$type],'api');
echo $sign;
```
>cowcms_userid值的获取 方式
* [ ] 当控制器继承了 Member或者Memberbase类时,并且用户登录成功可以获取该值
```
namespace app\signed\controller;
use user\Member;
class Signedajax extends Member
{
function getCowcmsUserid()
{
$userInfo = $this -> userInfo;
echo $userInfo['cowcms_userid'];
}
}
```
```
namespace app\signed\controller;
use user\Memberbase;
class Signedajax extends Memberbase
{
function getCowcmsUserid()
{
$userInfo = $this -> userInfo;
echo $userInfo['cowcms_userid'];
}
}
```
* [ ] 如果控制器没有继承Member或者Memberbase类,用户进行登录操作时
```
namespace app\signed\controller;
class login
{
function login()
{
/*用户登陆代码*/
$userInfo = ['id'=>10,"......"];
$cowcms_userid = exeFun('setCowcmsUserid',[$userInfo['id']],'member');
echo $cowcms_userid ;
}
}
```