XH通用登录v1.2及以上版本

该版本功能说明: 例如,我现在已登录OA系统,用户名为测试,邮箱为cssqq,手机号码为178。如果在Dzz系统中也存在相同的用

该版本功能说明:

例如,我现在已登录OA系统,用户名为测试,邮箱为css@qq,手机号码为178。如果在Dzz系统中也存在相同的用户名、电子邮件地址和手机号码,那么通过这个特殊链接打开Dzz后就是该用户的帐号。如果Dzz系统中没有这些信息,则会根据特殊链接中的帐户名和邮箱在Dzz系统中注册一个新帐户,并使用默认密码登录。管理员可以修改默认密码。

接口地址:index.php?mod=xhlogin;

请求方式:跳转方式;

请求地址http://127.0.0.1/index.php?mod=xhlogin&dateline=XXX&email=XXX&phone=XXX&username=XXX&token=XXX&redirect=XXX

接口说明:验证成功后跳转到DzzOffice首页或者指定的页面。注意:该接口可以直接通过后端登陆某个账号,注意安全保密,切勿泄露XH通用登录KAY,建议定期更换;

请求参数:

参数类型示例值描述是否必填
datelineint1712215131超时时间60秒
usernamestring测试用户名三选一
emailstringcss@qq邮箱三选一
phonestring178手机号三选一
redirectstringhttp://127.0.0.1/index.php?mod=corpus登录成功后,跳转的地址。默认跳转到首页
tokenstring6aafb1afaab15c7d44b8a1e0733eb7e7f350a48ab8441353d5d29bd3ba116543签名字符串

组合后的地址类似于:

http://127.0.0.1/index.php?mod=xhlogin&dateline=1712215131&email=css%40qq&phone=178&redirect=http%3A%2F%2F127.0.0.1%2Findex.php%3Fmod%3Dcorpus&username=%E6%B5%8B%E8%AF%95&token=6aafb1afaab15c7d44b8a1e0733eb7e7f350a48ab8441353d5d29bd3ba116543

注意:

登录用户可以只填写username、email、phone三者中的任意一个参数值。系统在检测到username、email、phone三个参数中任意一个有效值时,将判断为账号已存在于Dzz中,并允许登录。若三个参数均不存在,系统将判断是否允许注册。在允许注册的情况下,用户需至少填写username和email参数才能进行注册。否则,系统将提示登录失败。在注册时,phone参数为可选填写。

示例(php):

$key='bljt@2023';//XH通用登录KAY
//参数
$params=array(
    'dateline' => '1712215131',
    'email'=>'css@qq',
    'username'=>'测试',
    'phone' =>'178',
    'redirect' =>'http://127.0.0.1/index.php?mod=corpus'
);
//将参数按key升序排列
ksort($params);
/* 排序后参数数组
Array ( [dateline] => 1712215131 [email] => css@qq [phone] => 178 [redirect] => http://127.0.0.1/index.php?mod=corpus [username] => 测试 ) 1
*/
//将参数转换为url-encode字符串
$httpstr=http_build_query($params);
/* 编码后的签名字符串
dateline=1712215131&email=css%40qq&phone=178&redirect=http%3A%2F%2F127.0.0.1%2Findex.php%3Fmod%3Dcorpus&username=%E6%B5%8B%E8%AF%95
*/
//使用sha256计算签名
 $token = hash_hmac('sha256',$httpstr,$key);
 /*计算后的签名值
6aafb1afaab15c7d44b8a1e0733eb7e7f350a48ab8441353d5d29bd3ba116543
 */
/*组合后的地址
http://127.0.0.1/index.php?mod=xhlogin&dateline=1712215131&email=css%40qq&phone=178&redirect=http%3A%2F%2F127.0.0.1%2Findex.php%3Fmod%3Dcorpus&username=%E6%B5%8B%E8%AF%95&token=6aafb1afaab15c7d44b8a1e0733eb7e7f350a48ab8441353d5d29bd3ba116543
*/
dheader("Location: http://127.0.0.1/index.php?mod=xhlogin&$httpstr&token=$token&redirect=$redirect");

注意:

示例当中的参数即规定键名(数值或字符串)不能去掉,可以没有规定键值。比如说没有用户名、手机号和跳转地址参数值,只有邮箱参数值,就是如下代码:

$key='bljt@2023';//XH通用登录KAY
//参数
$params=array(
    'dateline' => '1712215131',
    'email'=>'css@qq',
    'username'=>'',
    'phone' =>'',
    'redirect' =>''
);
//将参数按key升序排列
ksort($params);
/* 排序后参数数组
Array ( [dateline] => 1712215131 [email] => css@qq [phone] => 178 [redirect] => [username] => ) 1
*/
//将参数转换为url-encode字符串
$httpstr=http_build_query($params);
/* 编码后的签名字符串
dateline=1712239748&email=css%40qq&phone=178&redirect=&username=
*/
//使用sha256计算签名
 $token = hash_hmac('sha256',$httpstr,$key);
 /*计算后的签名值
3a5eeaff26bcac7a41da57d560734922791268782a38e4c539014697cee00eeb
 */
/*组合后的地址
http://127.0.0.1/index.php?mod=xhlogin&dateline=1712215131&email=css%40qq&phone=178&redirect=&username=&token=3a5eeaff26bcac7a41da57d560734922791268782a38e4c539014697cee00eeb
*/
dheader("Location: http://127.0.0.1/index.php?mod=xhlogin&$httpstr&token=$token&redirect=$redirect");

提示信息说明:

提示信息可在系统日志-用户登录中查看详细信息。

发布者:admin,转转请注明出处:http://www.yc00.com/web/1754995275a5225043.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信