gpt4 book ai didi

java - 如何通过 session 跟踪用户是否登录?

转载 作者:行者123 更新时间:2023-12-01 12:57:54 26 4
gpt4 key购买 nike

我正在尝试提出一种机制来检查用户是否已登录,因为我的网络服务上的某些页面仅对注册用户可用。我的想法在下面的伪代码中得到了形式化。

void login(username, password)
{
if (username == db.user.username && password == db.user.password)
username.session = startSession(username);
else
response.redirect("/login");
}

String startSession(String username)
{
String sessionID = encoder.encode(randomBytes, username); /* generates
a random session id*/
mysql.session_table.insert(username, sessionID); /* save the session
id to session table */

return sessionID;
}

String getSession(String username)
{
return username.session;
}


boolean isSessionNew(sessionID)
{
if (sessionID.age > threshold)
return false;
else
return true;
}

基本上,当用户成功登录时,我将生成一个随机 session ID(startSession 方法)并将 session ID、用户名及其创建时间戳保存到 mysql 数据库表“session”中。当用户访问 protected 网页时,该页面将检查用户是否具有有效的 session ID(根据 session 年龄)。

我对这种设计的担忧是它可能会在与数据库通信时产生过多的开销。是否有更简单、安全的方法来跟踪用户登录 session ?

最佳答案

session 跟踪是一项非常常见的任务...您有一个 HttpSession 对象 ( javadocs ),您可以在其中存储属性。您还可以使用 HttpSessionContext 对象查找所有有效 session 。

这是一个快速的提示:http://www.tutorialspoint.com/servlets/servlets-session-tracking.htm

关于java - 如何通过 session 跟踪用户是否登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23744899/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com