【发布时间】:2014-12-14 10:13:28
【问题描述】:
您好,我在我的网站上使用以下登录/注册系统
1. Login via website (i.e. example.com)
2. Login via Facebook
3. Login via Twitter
4. Login via Google
现在当用户通过example.com 登录时,我在会话中设置值如下
session_start()
$_SESSION['auth_yes_exm'] = "Username from mySQL DB"
当用户通过 FB、Twitter 或 google 登录时,我在会话中设置值如下
session_start()
$_SESSION['oauth_user'] = "Oauth Username"
现在,有一个页面Orders,我在该页面上检查用户是否已通过身份验证,然后仅向他/她显示订单详细信息,适用如下:
session_start();
if(!(isset($_SESSION['auth_yes_exm']) && $_SESSION['auth_yes_exm']!='')){
header('location: login.php');
exit();
}
如何检查Oauth 用户是否已登录并向他显示订单详情?
我尝试如下,但它总是重定向到 login 页面
session_start();
if(!(isset($_SESSION['auth_yes_exm']) && $_SESSION['auth_yes_exm']!='') ||
!(isset($_SESSION['oauth_user']) && $_SESSION['oauth_user']!='')){
header('location: login.php');
exit();
}
请让我摆脱这一切。我将 Oauth 会话设置为不同的变量,因为我还需要在其他一些地方使用它。
【问题讨论】:
-
替换你的||通过 FB、twitter、google 登录时,带有 && 或 $_SESSION['auth_yes_exm'] 的运算符也设置此变量
-
完成了...谢谢....
标签: php session google-oauth twitter-oauth facebook-oauth