您有两个应用程序,每个用户的数据库都不同。 我已经使用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。 请让他们知道如何解决这个问题。
答案 0 :(得分:0)
这是您的身份验证例程中的一个简单设计问题。不要只考虑user
,而是将其与app
配对(可以是您自己生成的唯一ID或应用名称)并在session
中保留这两项内容,至少可以说。
然后您可以生成全局唯一的访问令牌。因此,即使您认为两个应用都可以拥有相同的用户,也不会在第二个应用上生成访问令牌。
另外,我看到的另一个缺陷是,当这两个应用程序属于一个伞式组织时,为什么需要为不同的用户维护多个表。只需维护一个用户表,其中PRIMARY KEY
是一对(user, app)
。