xiunoPHP实现同步登陆

利用主站校验,跳转回来

<span class="token php language-php"><span class="token delimiter important"><?</span><span class="token class-name type-declaration">php</span><span class="token variable">$action</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token keyword keyword-if">if</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'login'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 发起的 token</span>
<span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">xn_encrypt</span><span class="token punctuation">(</span><span class="token variable">$time</span><span class="token operator">.</span><span class="token string double-quoted-string">"\t"</span><span class="token operator">.</span><span class="token variable">$useragent</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$return_url</span> <span class="token operator">=</span> <span class="token function">xn_urlencode</span><span class="token punctuation">(</span><span class="token function">http_url_path</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'user-synlogin'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token string double-quoted-string">"user-synlogin.htm?token=<span class="token interpolation"><span class="token variable">$token</span></span>&return_url=<span class="token interpolation"><span class="token variable">$return_url</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 接受跳转回来的 token} elseif($action == 'synlogin') {</span>
<span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'token'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token function">xn_json_decode</span><span class="token punctuation">(</span><span class="token variable">$s</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword keyword-empty">empty</span><span class="token punctuation">(</span><span class="token variable">$arr</span><span class="token punctuation">)</span> <span class="token keyword keyword-AND">AND</span> <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'TOKEN 有错误'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">;</span>
<span class="token variable">$referer</span> <span class="token operator">=</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'登陆成功'</span><span class="token punctuation">,</span> <span class="token variable">$referer</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'create'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"user-create"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'logout'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token variable">$uid</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
<span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'退出成功'</span><span class="token punctuation">,</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token delimiter important">?></span></span>
<span class="token php language-php"><span class="token delimiter important"><?</span><span class="token class-name type-declaration">php</span><span class="token variable">$action</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span><span class="token keyword keyword-if">if</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'login'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
         
        <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         
        <span class="token comment">// 发起的 token</span>
        <span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">xn_encrypt</span><span class="token punctuation">(</span><span class="token variable">$time</span><span class="token operator">.</span><span class="token string double-quoted-string">"\t"</span><span class="token operator">.</span><span class="token variable">$useragent</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$return_url</span> <span class="token operator">=</span> <span class="token function">xn_urlencode</span><span class="token punctuation">(</span><span class="token function">http_url_path</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'user-synlogin'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token string double-quoted-string">"user-synlogin.htm?token=<span class="token interpolation"><span class="token variable">$token</span></span>&return_url=<span class="token interpolation"><span class="token variable">$return_url</span></span>"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         <span class="token comment">// 接受跳转回来的 token} elseif($action == 'synlogin') {</span>
         
        <span class="token variable">$token</span> <span class="token operator">=</span> <span class="token function">param</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'token'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$s</span> <span class="token operator">=</span> <span class="token function">xn_decrypt</span><span class="token punctuation">(</span><span class="token variable">$token</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token variable">$arr</span> <span class="token operator">=</span> <span class="token function">xn_json_decode</span><span class="token punctuation">(</span><span class="token variable">$s</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword keyword-empty">empty</span><span class="token punctuation">(</span><span class="token variable">$arr</span><span class="token punctuation">)</span> <span class="token keyword keyword-AND">AND</span> <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'TOKEN 有错误'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         
        <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
        <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token variable">$arr</span><span class="token punctuation">;</span>
         
        <span class="token variable">$referer</span> <span class="token operator">=</span> <span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
        <span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'referer'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         
        <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'登陆成功'</span><span class="token punctuation">,</span> <span class="token variable">$referer</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         <span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'create'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
         
        <span class="token function">http_location</span><span class="token punctuation">(</span><span class="token constant">BBS_URL</span><span class="token operator">.</span><span class="token function">url</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"user-create"</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         <span class="token punctuation">}</span> <span class="token keyword keyword-elseif">elseif</span><span class="token punctuation">(</span><span class="token variable">$action</span> <span class="token operator">==</span> <span class="token string single-quoted-string">'logout'</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
         
        <span class="token variable">$uid</span> <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
        <span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'uid'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword keyword-unset">unset</span><span class="token punctuation">(</span><span class="token variable">$_SESSION</span><span class="token punctuation">[</span><span class="token string single-quoted-string">'user'</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token function">message</span><span class="token punctuation">(</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token function">jump</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'退出成功'</span><span class="token punctuation">,</span> <span class="token function">http_referer</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
         <span class="token punctuation">}</span><span class="token delimiter important">?></span></span>
<?php$action = param(1);if($action == 'login') { $_SESSION['referer'] = http_referer(); // 发起的 token $token = xn_encrypt($time."\t".$useragent); $s = xn_decrypt($token); $return_url = xn_urlencode(http_url_path().url('user-synlogin')); http_location(BBS_URL."user-synlogin.htm?token=$token&return_url=$return_url"); // 接受跳转回来的 token} elseif($action == 'synlogin') { $token = param('token'); $s = xn_decrypt($token); $arr = xn_json_decode($s); empty($arr) AND message(-1, 'TOKEN 有错误'); $_SESSION['uid'] = $arr['uid']; $_SESSION['user'] = $arr; $referer = $_SESSION['referer']; unset($_SESSION['referer']); message(-1, jump('登陆成功', $referer, 2)); } elseif($action == 'create') { http_location(BBS_URL.url("user-create")); } elseif($action == 'logout') { $uid = 0; unset($_SESSION['uid']); unset($_SESSION['user']); message(-1, jump('退出成功', http_referer(), 2)); }?>
内容看完了
© 版权声明
1:本网站名称:蜡笔傻新
2:本站永久网址:https://labishaxin.com/
3:本站部分内容收集于互联网,如果有侵权内容、请联系我们删除,不妥之处,敬请谅解
4:本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责
5:本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6:本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新
喜欢就支持一下吧
点赞11赞赏 分享
评论 抢沙发

请登录后发表评论