最近博客用户模块要用到第三方登陆(QQ,微博,微信),登陆成功后要跳转到登陆前的页面。
这里做下记录:
要跳转第三方登陆时通过js把当前页面的完整URL在到cookie中,过期时间还不能太长。不然在文章内页跳转了第三方但没有登陆成功,此时URL的cookie己被设置了,再首页重新登陆成功后那么跳转的页面就是之前的文章内页了,所以这里cookie设置成一分钟后过期。
function setCookie(name,value,myDay){ var oDate=new Date(); oDate.setTime(oDate.getTime() + 1000 * myDay); document.cookie=name+"="+escape(value)+";expires=" + oDate.toGMTString(); } setCookie("this_url",window.location.href,60);//1分钟后过期 console.log(document.cookie);
js的window.location.href表示当前页面的完整链接
通过console.log()打印发现设置成功
一分钟后失效
在回调里用PHP读取cookie里的this_url 再重定向就ok啦,我这里使用的TP5的Cookie类读取
Session::set('frontend_sign',$session_user); // 跳转到登录前的页面 $this_url = Cookie::has('this_url','') ? Cookie::get('this_url','') : '/'; return redirect($this_url);
原生PHP读取方式
$this_url = isset($_COOKIE['this_url']) ? $_COOKIE['this_url'] : '/'; header("Location: $this_url"); die;
意思就是如果有设置this_url就跳转到设置的链接,没有则跳转到首页
转载请注明本文标题和链接:《 原生JS设置cookie过期时间,PHP再读取案例 》
网友评论 0