如何使用PHP在类似的应用程序中验证用户

时间:2015-01-30 11:02:26

标签: php session authentication login

您有两个应用程序,每个用户的数据库都不同。 我已经使用sesions实现了登录功能,但是在这两个应用程序代码中都实现了

应用1:

`

session_start();
if(!isset($_SESSION['user'])){
    header('Location:http://localhost/myapp1/login.php');
    exit();
}

`

应用2:

`

session_start();
if(!isset($_SESSION['user'])){
    header('Location:http://localhost/myapp2/login.php');
    exit();
}

`

上述方法的问题是,即使用户登录myapp1,如果两个应用中都存在用户ID,他也可以访问myapp2。 请让他们知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

这是您的身份验证例程中的一个简单设计问题。不要只考虑user,而是将其与app配对(可以是您自己生成的唯一ID或应用名称)并在session中保留这两项内容,至少可以说。

然后您可以生成全局唯一的访问令牌。因此,即使您认为两个应用都可以拥有相同的用户,也不会在第二个应用上生成访问令牌。

另外,我看到的另一个缺陷是,当这两个应用程序属于一个伞式组织时,为什么需要为不同的用户维护多个表。只需维护一个用户表,其中PRIMARY KEY是一对(user, app)