>本教程在均值堆栈应用程序中通过用户身份验证引导您。我们将使用一个常见的架构:一个角度单页应用程序与node.js,express和mongoDB基于rest api相互作用。
>密钥身份验证方面:
- 用户注册。
- 安全的用户数据存储(密码永远不会直接存储)。 >
- >用户登录。
- 会话跨页访问。
- >受保护页面的访问控件(仅登录用户才能访问)。 > 基于登录状态(例如,显示“登录”或“我的个人资料”按钮)。
- 均值堆栈身份验证工作流程:
>用户数据(带有哈希密码)位于mongodb中。
- >
在Express API中实现了
- crud(创建,读取,更新,删除)函数 Angular App与API相互作用并处理响应。 Express API在注册/登录时生成JSON Web令牌(JWTS),将其发送到Angular App。
- Angular App存储JWT来管理用户会话。 Angular App 验证了受保护视图的JWT有效性。
- >示例应用程序:
- 该代码可在GitHub上获得。 您需要安装node.js和mongoDB(请参阅Windows,Linux和MacOS上的MongoDB文档。
- Angular应用程序包含四个基本页面:
注册页
登录页面
个人资料页面(仅适用于身份验证的用户)
(get):检索个人资料详细信息。
设置API:
>使用
>工具(使用
>安装)来创建Express App:express -v pug mean-authentication cd mean-authentication npm i npm i pug@latest npm i mongoose如原始教程中所述,创建必要的目录结构和文件。 提供了
>,数据库连接(app.js
),API路由(api/models/db.js
)和初始控制器stubs(api/routes/index.js
>和api/controllers/authentication.js
)。
带有猫鼬的mongodb架构:api/controllers/profile.js
文件使用mongoose来定义mongodb架构:
api/models/users.js
>密码管理(哈希和盐):
const mongoose = require('mongoose'); const crypto = require('crypto'); const jwt = require('jsonwebtoken'); // ... (Schema definition and setPassword, validPassword, generateJwt methods as described in the original tutorial)>
>和
方法使用>模块在不直接存储密码的情况下安全地处理密码。 setPassword
方法使用validPassword
软件包来创建JWTS。
crypto
passport.js用于身份验证:generateJwt
jsonwebtoken
安装护照和本地策略:
中的护照:
npm i passport passport-local
updateapi/config/passport.js
>初始化护照作为中间件。
// ... (Passport configuration as described in the original tutorial)> API端点配置:
app.js
>使用寄存器,登录和配置文件处理逻辑,完成
。
使用CLI创建Angular应用: , )。 实施 连接角组件和API:
向Express服务器的请求。 启动Express服务器和Angular App。 测试注册,登录和配置文件访问。 根据需要添加样式(请参阅GitHub存储库以获取样式细节)。
api/controllers/profile.js
/api/profile
生成必要的组件(express-jwt
>,ng new client
register
login
>使用profile
来处理API交互作用,在各个组件中实现寄存器和登录表单。 将导航栏更新以根据登录状态动态显示“登录”或用户的名称和配置文件链接。 使用角路线保护(home
)保护authentication
>路线。 最后,实现配置文件页面以获取和显示从受保护的API路由的用户详细信息。AuthenticationService
>
AuthenticationService
常见问题(常见问题解答):/profile
FAQS部分
以上是平均堆栈:构建具有角和角CLI的应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!

Node.js擅长于高效I/O,这在很大程度上要归功于流。 流媒体汇总处理数据,避免内存过载 - 大型文件,网络任务和实时应用程序的理想。将流与打字稿的类型安全结合起来创建POWE

Python和JavaScript在性能和效率方面的差异主要体现在:1)Python作为解释型语言,运行速度较慢,但开发效率高,适合快速原型开发;2)JavaScript在浏览器中受限于单线程,但在Node.js中可利用多线程和异步I/O提升性能,两者在实际项目中各有优势。

JavaScript起源于1995年,由布兰登·艾克创造,实现语言为C语言。1.C语言为JavaScript提供了高性能和系统级编程能力。2.JavaScript的内存管理和性能优化依赖于C语言。3.C语言的跨平台特性帮助JavaScript在不同操作系统上高效运行。

JavaScript在浏览器和Node.js环境中运行,依赖JavaScript引擎解析和执行代码。1)解析阶段生成抽象语法树(AST);2)编译阶段将AST转换为字节码或机器码;3)执行阶段执行编译后的代码。

Python和JavaScript的未来趋势包括:1.Python将巩固在科学计算和AI领域的地位,2.JavaScript将推动Web技术发展,3.跨平台开发将成为热门,4.性能优化将是重点。两者都将继续在各自领域扩展应用场景,并在性能上有更多突破。

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

是的,JavaScript的引擎核心是用C语言编写的。1)C语言提供了高效性能和底层控制,适合JavaScript引擎的开发。2)以V8引擎为例,其核心用C 编写,结合了C的效率和面向对象特性。3)JavaScript引擎的工作原理包括解析、编译和执行,C语言在这些过程中发挥关键作用。

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

禅工作室 13.0.1
功能强大的PHP集成开发环境