首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js实现登陆和注销

在JavaScript中实现登录和注销功能通常涉及到前端与后端的交互,以及本地存储(如localStoragesessionStorage)的使用来管理用户的登录状态。以下是一个简单的实现示例:

登录功能实现:

  1. HTML表单:首先,你需要一个HTML表单来收集用户的登录凭证(通常是用户名和密码)。
代码语言:txt
复制
<form id="loginForm">
  <input type="text" id="username" placeholder="用户名" required>
  <input type="password" id="password" placeholder="密码" required>
  <button type="submit">登录</button>
</form>
  1. JavaScript处理登录:使用JavaScript监听表单提交事件,并发送登录请求到后端。
代码语言:txt
复制
document.getElementById('loginForm').addEventListener('submit', function(event) {
  event.preventDefault(); // 阻止表单默认提交行为

  const username = document.getElementById('username').value;
  const password = document.getElementById('password').value;

  // 发送登录请求到后端API
  fetch('/api/login', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ username, password })
  })
  .then(response => response.json())
  .then(data => {
    if (data.success) {
      // 登录成功,保存token到localStorage
      localStorage.setItem('userToken', data.token);
      // 更新UI,显示登录后的状态
    } else {
      // 登录失败,显示错误信息
      alert(data.message);
    }
  })
  .catch(error => console.error('Error:', error));
});
  1. 后端验证:后端需要验证用户名和密码,如果验证成功,返回一个token(通常是JWT)给前端。

注销功能实现:

  1. JavaScript处理注销:当用户点击注销按钮时,清除本地存储的用户token,并更新UI。
代码语言:txt
复制
function logout() {
  // 清除localStorage中的用户token
  localStorage.removeItem('userToken');
  // 更新UI,显示登录前的状态
}

// 假设有一个注销按钮
document.getElementById('logoutButton').addEventListener('click', logout);
  1. 后端处理注销:虽然前端已经清除了token,但为了安全起见,后端也应该提供一个注销接口来使token失效。
代码语言:txt
复制
function logout() {
  const token = localStorage.getItem('userToken');
  if (token) {
    // 发送注销请求到后端API
    fetch('/api/logout', {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${token}`
      }
    })
    .then(response => response.json())
    .then(data => {
      if (data.success) {
        // 后端注销成功,清除localStorage中的用户token
        localStorage.removeItem('userToken');
        // 更新UI,显示登录前的状态
      }
    })
    .catch(error => console.error('Error:', error));
  }
}

注意事项:

  • 在实际应用中,登录和注销操作应该伴随着对用户权限的检查。
  • 密码不应该在前端进行任何形式的处理,所有的验证都应该在后端完成。
  • 使用HTTPS来保护数据传输过程中的安全。
  • Token应该存储在HttpOnly的cookie中,以防止XSS攻击,或者使用sessionStorage而不是localStorage,因为sessionStorage在浏览器关闭后会被清除。
  • 对于敏感操作,后端应该实施额外的安全措施,如验证码、二次验证等。

以上代码仅为示例,实际应用中需要根据具体需求和安全规范进行调整。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaEE中,实现用户登陆和注销的操作

登陆操作 1、在servlet程序中新建一个login方法 2、在业务层新建一个login的方法,传入empId、password两个参数。 在业务层的实现类中可以有两种写法。...常规写法,在dao层实现类中比对根据empid、password查询员工信息,如果查不到,返回null。...新思路:在业务层实现类中调用之前实现好的findById(通过empId查询员工信息),对数据进行比对,不一致返回null。...如果成功,将存放用户名、密码等数据的emp对象放入到session中,方便登陆后使用。...注销 1、定位到注销按钮所在位置,并为其添加链接(跳转到相关servlet程序中的相关方法)与点击事件(提示是否退出操作) 2、在servlet中创建退出方法 3、在jsp中的js代码块中添加点击事件的具体操作

1.3K30

JavaWeb 基于Session的用户登陆注销实现

通过Session来存储用户的部分登陆信息来验证用户是否在线,这应该时最容易实现的一种Web端方案,本文以SSM(Spring、SpringMVC、myBatis)框架为载体,来具体实现这套登陆系统...2.当其他页面访问时,如何判断是否有用户登陆在线呢,我通过JS来取Session值来判断。     ...即:先去拿Session的值,如果拿到为空或为null,则说明此会话在此之前没有登陆行为,我们自动将其重定向到首页,如果有值,则说明有登陆行为,且登陆在线的用户为CURRENT_USER 所取出来的值,...     注销,即清除Session中的值即可,由后台开放一个注销接口。...request.getSession(); session.removeAttribute("CURRENT_USER"); return "index"; }   这样就实现了一套从登陆到注销的用户管理体系

2.3K10
  • linux用户的登录和注销

    在 Linux 系统中,用户登录和注销是使用 Shell(命令行解释器)来完成的。本文将介绍如何在 Linux 系统中进行用户登录和注销的详细过程,并给出相应的示例。...二、用户注销 用户注销是指用户结束当前会话并退出系统的过程。在 Linux 系统中,有多种方法可以进行用户注销,最常见的方法是使用 Shell 提供的 exit 命令。...三、附加说明 在 Linux 系统中,还有一些与用户登录和注销相关的命令和文件,这些命令和文件的作用如下: whoami 命令:用于显示当前登录的用户名。...输出显示有两个用户登录到系统中,分别是 user 和 guest,它们都还在系统中登录着。 /var/log/wtmp 文件:用于记录用户登录和注销的历史记录。...在上面的示例中,我们使用 sudo cat /var/log/wtmp 命令查看 /var/log/wtmp 文件中的内容,即用户登录和注销的历史记录。

    6.2K20

    CAS的登录和注销原理

    这篇文章重点介绍开源单点登录系统CAS的登录和注销的实现方法。并结合实际工作中碰到的问题,探讨在集群环境中应用单点登录可能会面临的问题。 1 单点登录的过程 为了描述方便,假设有如下一个单点登录系统。...2.2基本概念:TGT和ST CAS已经考虑到统一注销的问题。 这里有三个重要的概念TGT、ST和Service,需要着重介绍一下,因为它们同后续统一注销的方案息息相关。 ?...这就为实现统一注销打下了基础。 2.3CAS Client的统一注销配置 CAS Client,为了实现统一注销,除了第一张介绍的三个登录过程的过滤器之外,还需要添加一个统一注销过滤器。...至此,CAS完整的登录和注销过程就完成。 2.6思考:什么情况统一注销会失败 统一注销的实现,需要CAS Server通过HttpClient访问CAS Client的service。...3.2.2 集群的节点实现Session同步 如果能实现集群Session的同步:同步创建、同步注销,主要在一个Client上实现了注销,其他Client也就同步注销。

    3.4K40

    【Linux操作系统】——vivim编辑器以及关机、重启、登陆、注销命令

    vi和vim是我们在Linux中最常用的编辑器。...【命令行下 : set nu 和 :set nonu】 编辑 /etc/profile 文件,使用快捷键到底文档的最末行[G]和最首行[gg] 【正常模式下】 在一个文件中输入 “hello...五、关机、重启、登陆、注销命令 关机 & 重启 shutdown -h now [立刻关机] shutdown -h 1 “1 分钟,关机.” [1 分钟后,关机] shutdown -r now [立刻重启...shutdown -r 2 “2 分钟后,重启” halt 【立刻关机】 reboot 【立刻重启】 Tips:不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中 登录 & 注销...注销指令在图形运行级别无效,在运行级别 3 下有效.

    2.1K30

    ASP.NET Core 使用最简洁的代码实现登录、认证和注销

    前言 认证是一个确定请求访问者真实身份的过程,与认证相关的还有其他两个基本操作——登录和注销。...该中间件实现的整个认证流程涉及图1所示的三种针对认证票据的操作,即认证票据的"颁发"、"检验"和"撤销"。...如果希望在过期之前就让认证票据无效,这就是注销(Sign Out)操作。 ASP.NET的认证系统旨在构建一个标准的模型,用来完成针对请求的认证以及与之相关的登录和注销操作。...按照惯例,在介绍认证模型的架构设计之前,需要通过一个简单的实例来演示如何在一个ASP.NET应用中实现认证、登录和注销的功能。...在实现的AccountService类型中,我们预创建了三个密码为"password"的账号("foo"、"bar"和"baz")。

    51830

    啥是单点登陆?淘宝和天猫是如何实现同时登陆的?

    所以,一般我们单系统实现登录会这样做: 登录:将用户信息保存在Session对象中 - 如果在Session对象中能查到,说明已经登录 如果在Session对象中查不到,说明没登录(或者已经退出了登录)...注销(退出登录):从Session中删除用户的信息 记住我(关闭掉浏览器后,重新打开浏览器还能保持登录状态):配合Cookie来用 我之前Demo的代码,可以参考一下: /** * 用户登陆 *...= null) { /*设置自动登陆,一个星期....response, "loginToken"); return ResultUtil.success(); } /** * @author ozc * @version 1.0 * * 拦截器;实现自动登陆功能...将Token保存在SessionStroage中(不依赖Cookie就没有跨域的问题了) 到这里,我们已经可以实现单点登录了。

    6.8K51

    GB28181控制、传输流程和协议接口之注册|注销和技术实现

    注册和注销基本要求 SIP客户端、网关、SIP设备、联网系统等 SIP代理(SIP UA)使用IETFRFC3261中定义的方法 GB/T28181—2016Register进行注册和注销。...注册和注销时应进行认证,认证方式应支持数字摘要认证方式,高安全级别的宜支持数字证书的认证方式,数字证书的格式符合附录I中的规定。...注销流程图片注销流程描述如下:a) 1:SIP代理向SIP服务器发送Register请求,Expires字段的值为0,表示SIP代理要注销;b) 2:SIP服务器向 SIP代理发送响应401,并在响应的消息头...相关技术实现/* * CameraPublishActivity.java * initGB28181Agent 初始化参数 * * WebSite: https://daniusdk.com...errorInfo :"")); }注销的话,Expires字段的值为0即可。

    1K00

    Java 实现 QQ 登陆

    另外一个问题就是如何和现有用户系统打通,有的网站在用户已经登录成功之后还要用户输入手机号和验证码,或者要用户重新注册账号和密码来绑定第三方账户,感觉这种实现用户体验非常差,碰到这种网站我一般都是直接关掉...QQ登陆 3.1. 实名认证 QQ登录我们对接的是QQ互联,地址:https://connect.qq.com ,首先需要注册成为开发者并实名认证,需要手持身份证照片,具体就不讲了。 3.2....HttpServletRequest request, HttpServletResponse response) throws Exception { // QQ登录有点特殊,参数放在#后面,后台无法获取#后面的参数,只能用JS...相关文档官网已经写得比较细了,但是比较乱:http://wiki.connect.qq.com/ 对接微博登陆 4.1....不过一般不会超过; 需做好错误兼容; 微博直接返回的uid,可以根据这个uid直达用户微博主页 https://weibo.com/u/xxxxx ,所以可以把用户头像链接到这里; 其实也有现成的js-sdk

    3.1K31
    领券