通过session实现用户的登录与登出功能

简介: 通过session实现用户的登录与登出功能

通过session实现用户的登录与登出功能

本文讲解,就是在常见的登录注册页面中,我们是如何在登录之后,把用户的信息传送到后面的网页。

首先讲解原理,原理是session功能,通过session的在当前浏览器的信息共享功能,实现后面的网页可以获取到登录用户的信息。

登出用户的原理就是,使用清除session的功能,清除本网页存储的用户的session,专业就实现了退出用户的功能。

这里通过前端代码进行演示。

登录

演示代码

在这里主要是使用这段代码

  • window.sessionStorage.setItem(“username”, username)
    通过这段代码可以把用户的输入的内容存储到当前的网页,这样的话这个输入的信息就被当前的网页,以及后面的网页共享了,这样的话,后面的网页就可以访问到这个用户的姓名了。

这里还加上一个location.href进行页面的跳转,当用户点击按钮的时候,就会跳转到后面的页面。

项目的结构

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>    
    账号:<input id="username"><br>
    密码:<input id="password"><br>
    <button id="btn">登录</button>
</body>
<script type="text/javascript">
   document.getElementById("btn").onclick = function(){    
        // 把用户的信息存储到浏览器中 记得需要存储JSON形式
        var username = document.getElementById("username").value
        // 把用户的信息存储到浏览器中 记得需要存储JSON形式
        window.sessionStorage.setItem("username", username)
        console.log(username)
        location.href = "http://127.0.0.1:5500/user.html"
   }
</script>
</html>

运行效果

点击登录之后,就会转到这个页面,然后用户的姓名就会显示到网页上面了。

这个user.html的写法如下

这里是通过获取共享的sesion数据,通过getItem进行获取共享的数据。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    我是:<div id="username"></div>
</body>
<script>
    var username = sessionStorage.getItem("username");
    console.log(username)
    document.getElementById("username").innerHTML = username
</script>
</html>

登录logout

演示代码

这里的主要的功能实现是,通过这句话,移除本地存储的session,这样就退出了本地的登录。

然后再进行一个跳转到原来的index.html页面,这样就返回了主页了。

  • window.sessionStorage.removeItem(“username”)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    我是:<div id="username"></div>
    <button id="logout">登出</button>
</body>
<script>
    var username = sessionStorage.getItem("username");
    console.log(username)
    document.getElementById("username").innerHTML = username
    document.getElementById("logout").onclick = function(){
        window.sessionStorage.removeItem("username")
        location.href = "http://127.0.0.1:5500/index.html"
    }
</script>
</html>

如果大家觉得有用的话,可以关注我下面的微信公众号,极客李华,我会在里面更新更多行业资讯,企业面试内容,编程资源,如何写出可以让大厂面试官眼前一亮的简历等内容,让大家更好学习编程,我的抖音,B站也叫极客李华。大家喜欢也可以关注一下

相关文章
|
存储 算法 NoSQL
还分不清 Cookie、Session、Token、JWT?看这一篇就够了
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点,接下来就让我们一起看看吧,本文转载至http://juejin.im/post/5e055d9ef265da33997a42cc
48913 13
|
存储 前端开发 搜索推荐
13:Session机制实现用户登录与注销功能-Java Web
13:Session机制实现用户登录与注销功能-Java Web
1071 3
|
数据可视化 项目管理
什么是关键工作?如何识别和管理项目中的关键工作?
项目管理中的关键工作是指那些一旦延迟便会影响整个项目进度的任务。本文从实战角度探讨了关键工作的定义、识别方法及高效管理策略,强调了资源优先配置、预警机制、应急方案及频繁沟通的重要性,并介绍了几款有助于关键任务管理的项目管理工具。
733 1
|
SQL 缓存 大数据
C#高效处理大数据的批次处理,以及最好的数据库设计
C#高效处理大数据的批次处理,以及最好的数据库设计
536 0
|
开发者
解决 display: inline-block 产生的空白间隙问题
【10月更文挑战第27天】在实际应用中,可以根据具体的布局需求、代码结构和兼容性要求等因素,选择合适的方法来消除空白间隙,以实现更精确、更美观的页面布局效果。
|
前端开发
使用display:inline-block会产生什么问题?解决方法?
【10月更文挑战第27天】使用`display: inline-block`时可能会出现空白间隙和垂直对齐等问题,但通过上述相应的解决方法,可以有效地克服这些问题,实现更精确、更美观的页面布局效果。
|
IDE Linux 开发工具
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
IDEA 目前已经更新到最新的 2022.2.2 版本了,群里的小伙伴私聊问我,为啥之前 2021.3.1 的激活套路对新版本 2022.2.2 不管用了,是个什么情况? 很显然,IDEA 官方发现了这种破解路数,新版本加入了更严厉的反制破解。所以说,小伙伴们破解成功了以后,尽量不要升级 IDEA, 不然大概率又不行了。 好在z大又更新了新的补丁,针对最新版本,这边笔者亲测可行,仅以下文记录本人 IntelliJ IDEA 2022.2.2 版本的激活破解到 2099 年的全过程,步骤非常详细,跟着图文来就行~
66206 3
IntelliJ IDEA2022破解IDEA2022.2永久破解激活教程
|
存储 SQL 分布式计算
Kylin的优点和缺点
Kylin(Apache Kylin)是一个开源的分布式分析数据仓库,专为处理大规模数据集和提供快速的多维分析(OLAP)能力而设计。
341 3