Mat*_*att 9 javascript authentication session-variables
我想确定用户是否已登录,或者他们是否只是来自javascript的匿名...
我发现了这个问题,但它是php代码,我不确定是否有一个名为logged_in的会话变量存储在登录中,或者这只是那个人自己实现的东西.
任何人都知道如何检查用户是否从javascript登录,可能使用ajax?
编辑:我正在运行Asp.Net MVC,抱歉应该已经指定了
这样我就可以实现客户端ajax登录.当页面加载时,我需要知道用户是否登录,因此我可以<asp:LoggedInView>使用jquery 实现类似于控件的操作.
谢谢,
马特
Mak*_*leh 10
您无法从JavaScript中读取会话保存的数据.
一个简单的方法是从PHP创建一个JS var(比cookie解决方案更容易),如下所示:
if ($_SESSION['logged_in'] == 1) {
echo '<script type="text/javascript">var logged_in=true;</script>';
} else {
echo '<script type="text/javascript">var logged_in=false;</script>';
}
Run Code Online (Sandbox Code Playgroud)
然后JS将只检查本机logged_invar以查看用户是否已登录.
<script type="text/javascript">
if (logged_in) {
alert("My user is logged in!");
}
</script>
Run Code Online (Sandbox Code Playgroud)
[免责声明]由于我收到了很多关于这种"不良做法"的评论,我只想这样说:这样做是不好的做法,但我们不知道原来是什么海报打算做.据我们所知,他做了其他一切100%正确和安全的事情,只是问是否有办法从javascript获得它.我在下面所做的就是如何完成他所要求的事情.[/免责声明]
您可以使用您的php或您正在使用的任何后端语言,设置一个cookie,然后您可以使用javascript阅读.
document.cookie
Run Code Online (Sandbox Code Playgroud)
就那么简单.您必须在cookie字符串中搜索已登录cookie的名称.
您也可以使用它来设置cookie并通过javascript进行登录(尽管可能不是最好的主意.)
有关javascript cookie访问的快速概述,请参见此处.
[编辑]
要解决可以访问会话信息的客户端脚本问题,以及原始问题中建议的可能使用的ajax:
是的,ajax调用将是一个非常简单的方法来检查这一点.我更像是一个jQuery人,所以我的ajax经验就在那里,但基本上,你会对你的后端函数进行ajax调用,而后端函数只检查'loggedin'会话变量,返回true或false.
此外,由于您现在提到您正在使用jQuery,请参阅此页面以便轻松访问jQuery cookie.[/编辑]
| 归档时间: |
|
| 查看次数: |
21496 次 |
| 最近记录: |