iPhone 主屏幕 Web 应用程序和保持登录状态
Posted
技术标签:
【中文标题】iPhone 主屏幕 Web 应用程序和保持登录状态【英文标题】:iPhone Home Screen Web App and Staying Logged In 【发布时间】:2012-08-25 00:21:49 【问题描述】:我在使用浏览器时一直使用 php Session 保持登录状态,但是当我将 Web 应用程序保存到主屏幕并启动应用程序时,每次打开应用程序时都必须登录。有没有办法保持登录状态?
当我查看本地存储时,任何人都可以提供代码示例或指出正确的方向,但不确定在我登录时如何设置 LocalStorage 值以及如何检查该值是否存在。
注意:我目前使用 PHP 登录
谢谢
index.php
<script type="text/javascript">
<?php echo $_SESSION['logged'];?>
<?php if ($_GET['logged'] == 1)?>
$.cookie( 'loggedin', '1', expires: 7, path: '/' );
<?php ?>
if( $.cookie('loggedin') == '1' )
<?php $userlog = true?>
$.cookie( 'loggedin', '1', expires: 7, path: '/' );
else
<?php $userlog = false?>
$.cookie( 'loggedin', '0', expires: 7, path: '/' );
</script>
$_SESSION['logged'] 是从 sign-in.php 文件中设置的
登录.php
if($count==1)
session_register("username");
$_SESSION['logged']= $user;
header("location: /?logged=1");
else
echo "Your Login Name or Password is invalid";
【问题讨论】:
不,实际上您“没有”使用 PHP 登录。至少不是直接登录。您正在使用 ios。我的意思是:将登录凭据存储在应用程序本身中,并在启动时自行“重新验证”。这样,您就可以避免每次都登录。我手头没有代码,所以我只评论。 提供一些你的代码的 sn-p 和/或应用程序伙伴人们在这里猜测你的问题.. :( 刚刚编辑以包含我的代码 设置 cookie 也不起作用。我使用了 jQuery Cookie,当我重新打开应用程序时它不起作用 【参考方案1】:我很确定您不需要 LocalStorage。
只需设置一个未来过期的 cookie,而不是会话 cookie(浏览器关闭时会删除)。
您可能无法为此使用 PHP 会话,因为它们会定期删除。相反,您必须自己处理登录 cookie。
【讨论】:
不,他可能需要使用localstorage
,因为 iphone 主页收藏夹会在短时间内清除 cookie。【参考方案2】:
我不确定是什么问题,但如果您想要可持续的本地存储,请检查您是否已登录,在您的 iOS 应用程序关闭后,这里是:
为用户默认设置一个标志,例如:
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"isLogin"];
然后在应用程序启动时检索此值以检查您是否已登录:
BOOL isLogin = [[NSUserDefaults standardUserDefaults] valueForKey:@"isLogin"];
现在相应地执行您需要的操作。
【讨论】:
【参考方案3】:我目前使用的 LocalStorage 效果很好
【讨论】:
以上是关于iPhone 主屏幕 Web 应用程序和保持登录状态的主要内容,如果未能解决你的问题,请参考以下文章
停止重新加载从 iPhone 主屏幕启动的 Web 应用程序
提示 iPhone 用户将用 Asp.Net MVC 开发的网页添加到主屏幕