仅使用 JavaScript 创建基本日志 In/Sign Up 系统(无 PHP 或服务器端)?

Creating a Basic Log In/Sign Up System Using JavaScript ONLY (No PHP or Server-Side)?

我们在大学里遇到了一个挑战,要创建一个仅使用客户端编程的预约系统,到目前为止进展顺利。我目前正在尝试创建一个非常直接的登录系统,以便用户可以在网站上查看和重新安排他们的预订,但是我的互联网搜索提供的帮助很少。我找到了这篇文章 (https://github.com/zellwk/zellwk.com/blob/master/src/posts/2020-02-05-frontend-login-system.md),我想法是直截了当的,但跳来跳去很多,我不确定最终的 JS 布局应该是什么样的,而且我很难弄清楚如何将我的代码连接到它(抱歉 JS 新手)。

无论如何,我更想知道是否可以这样做,我可以将凭据存储到我的 localStorage 中吗?我应该使用 JSON 吗?我将包括我的基本表单代码,但我更想寻求建议 and/or 如果有人能给我指出一篇文章的正确方向,我可以在其中了解它是如何完成的,我能找到的只是 PHP/MySQL登录教程。

          <form id="basiclogin" name="basiclogin" onsubmit="basicLogin()" class="col-sm-6">
                    <div class="row">
                        <input type="textbox" placeholder="Username" name="email">
                        <input type="textbox" placeholder="Password" name="password">
                        <input type="submit" value="Submit">
                    </div>
                </form>

要构建任何登录系统,您需要几个部分:

  1. 用于输入凭据的表单,例如电子邮件和密码
  2. 存储数据的地方。任何类型的数据库。要玩,您可以在输入标签客户端和本地存储时存储到浏览器的存储空间。

勾选https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB 当然,这个数据存储对于客户端来说是本地的,客户端可以查看它并用它做任何想做的事情。如果您需要真正的身份验证,则必须有后端。要么 运行 你自己像 nodejs express server 这样的东西,它会再次连接某种数据存储来存储数据,或者保留那个 'in memory' aka 一​​些对象,数组或者其他,当然这会在服务后丢失重新开始。将数据保存在文件系统中 - 使用最低限度的一些文件,用于任何类型的更现实的应用程序 - 来自 sqlite 的数据库,它可以 运行 无需任何数据库安装到像 AWS DynamoDB 这样疯狂的东西。

  1. 从表单收集数据并将其转发到您拥有数据存储解决方案的地方,并检查凭据是否正确。如果数据库类似于服务器上 运行 的 MySQL,则必须将数据发送到后端,使用 POST 请求。

  2. 检查您的凭据是否正确以及用户的 return 标识符是否在注销时被删除,之前保存的数据。这通常是 PHP 应用程序的会话 ID,对于 JS 某种授权令牌,稍后可用于再次调用后端以授权用户并列出、删除、更新属于该用户的数据库中的一些数据。

因此,当您有存储用户凭据数据的地方时,您需要从表单中接受数据,将其转发到后端或客户端功能,如果此登录数据正确,则将检查您存储的数据 -创建会话 ID、身份验证令牌或任何可以识别用户的临时标识符,仅此而已,用户可以使用它进行身份验证。

如果不能使用服务器端,请使用本地存储、Web SQL、IndexedDB。选择一个,找到一些示例如何保存数据并摆脱它。这样您就可以注册并登录了。

打开开发工具,这是您的选择:

它当然是完全不安全的,因为客户端可以完全访问数据库并且它没有“互联网”东西,而它 运行 仅在您的浏览器中。

当然,我在这里谈论的是使登录概念“发生”的绝对最低限度,希望它能帮助您了解系统的工作原理:)