如何使用 php 在类似应用程序中对用户进行身份验证

how to authenticate users among similar applications using php

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

应用程序 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。 请让他们知道如何解决这个问题。

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

然后您可以生成应该在全球范围内唯一的访问令牌。因此,即使您可以在两个应用程序上拥有相同的用户,第二个应用程序也不会生成访问令牌。

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