繁体   English   中英

用户登录网站时从Android应用注销用户

[英]Log out user from Android app when user signs in on website

我有一个Android应用程序和一个向用户提供相同内容的网站。 我正在尝试完成以下任务:

如果用户在网站上登录,则Android应用程序应自动将其注销;如果用户从Android应用程序登录其帐户,则网站应将其注销。 这是为了确保用户一次可以访问Web应用程序或Android应用程序,而不是一起访问。

我正在寻找最佳实践和解决方案来实现这一目标。

这是我想出的:

当用户从Android或网站登录时,我会更新数据库中名为“ login_device”的字段,具体取决于情况,该字段将为“ web”或“ mobile”。

如果“ login_device”为“移动”,并且用户从网站登录,它将更改为“ web”,并且Android应用程序将注销用户。

如果“ login_device”为“ web”,并且用户从Android应用程序登录,则该值将更改为“ mobile”,并且用户将从Web退出。

另外,我为Android应用程序创建了一个名为“ ping”的网络服务。

但是,在这种方法中,Android应用程序需要与服务器保持恒定连接以检查“ login_device”的值。

这是ping服务代码:

<?php

    require_once 'transact/info.php';
    require_once 'transact/database.php';
    require_once 'transact/func.php';

    $data = file_get_contents('php://input');
    $json = json_decode($data);

    $id = mysql_real_escape_string($json->{'user_id'});

    $query = 'select login_device from users where id = '.$id;
    $result=mysql_query($query) or die('error getting admin details : '.mysql_error());
    $row = mysql_fetch_array($result);

    $array = array("login_device" => $row['login_device']);
    print( json_encode($array));
?>

因此,我的问题是:

问-在这种方法中,我如何与服务器保持恒定连接以检查“ login_device”的值:

问-是否有更好,更标准的方法来实现上述目标?

感谢您的帮助!

问-在这种方法中,我如何与服务器保持恒定连接以检查“ login_device”的值:

定义一个标准时间间隔,在该时间间隔中,即使有人登录到网站,他们实际上也没有足够的时间破坏任何规则(根据您的应用程序在做什么)(例如10秒),并在此间隔内对网站执行ping操作。 移动应用程序的体系结构通常基于REST技术。 就是说,没有真正的永久联系。 距离越近,ping越紧密。 因此,您只需要定义“对我来说足够频繁的频率”

问-是否有更好,更标准的方法来实现上述目标?

不,因为这不是通常的要求。 目前,大多数应用程序/网站都不允许永久使用多种设备。 因此,您如何开始做起来似乎是最好的解决方案

您是否考虑过使用node.js构建网站,然后将其包装在Phone Gap和XCode中分别将其转换为Droid和iOS应用程序,然后将其转换为移动应用程序。 Node.js将使您的应用保持打开的同步连接,当用户的登录状态更改时,该连接将允许推送事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM