首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查用户是否已登录到其他域名?

如何检查用户是否已登录到其他域名?
EN

Stack Overflow用户
提问于 2012-07-15 02:45:36
回答 2查看 2.2K关注 0票数 0

我想建立一个浏览器游戏社区的社区页面(浏览器游戏不是我的,所以我不能添加任何代码)。现在我想在我的网站上检查用户是否登录到浏览器游戏中。只有在这种情况下,用户才能看到内容。既然您不能读取设置在另一个域上的cookie,有没有可能实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2012-07-15 02:53:42

你可以使用像CAS这样的东西。中央认证服务器,其中,如果没有为第一个域设置会话,它将如下所示:

example.net

代码语言:javascript
复制
<?php
session_start();
if(!isset($_SESSION["user"]))
{
    header('Location: http://auth.example.com/?from=example.net');
    die();
}
// Rest of the content!
?>

对于域auth.example.com

代码语言:javascript
复制
<?php
session_start();
if(!isset($_SESSION["user"]))
{ ?>
    <!-- form to get login credentials -->
<?php } else {
     if(isset($_GET["from"]) && isset($_SESSION["user"]))
         header('Location: http://example.net/auth.php?authcode=' . yourEncryptFunction($_SESSION["user"]));
} ?>

希望这能有所帮助!:)

票数 4
EN

Stack Overflow用户

发布于 2012-07-15 02:56:32

如果您同时控制两个域,则可以这样做。一种简单但不安全的方法是使用JavaScript来违反同源策略。在浏览器游戏中运行一个简单的脚本,如下所示:

代码语言:javascript
复制
<?php
$info = array(
    'isLoggedIn' => $_SESSION['isLoggedIn'],
    'loggedInAs' => $_SESSION['userName']
    );
echo "gameInfo = ".json_encode($info).";";

在您的社区页面上,您可以使用JavaScript确定他们是否已登录:

代码语言:javascript
复制
<script src="http://gamesite.com/jsGameStatus.php"></script>
<script>
alert(gameInfo.isLoggedIn 
    ? 'Logged In as '+gameInfo.loggedInAs 
    : 'Not logged in');
</script>

再说一次,并不是超级安全(有人可以伪造这些值)。如果您想要更安全的东西,您需要能够以某种方式将两者联系在一起-您的社区用户帐户将必须知道他们的游戏帐户in是什么,然后您可以从社区站点使用一个简单的远程调用来了解游戏用户是否已登录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11486413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档