如何保护我的 AngularJS 和 Web Api 应用程序

2024-04-08

我在 ASP.NET Web Api 服务器端使用 AngularJS。在我看来,身份验证现在已经变得轻而易举了?或者这太好了以至于令人难以置信?

所以我正在考虑使用Web Api的“个人用户帐户”身份验证。我想这就是我所需要的。只要每个请求都经过身份验证,并且没有人可以获得他们不应该获得的任何数据,我就不需要做更多的事情,对吧?

或者我是否缺少一些关键的安全基础知识?


在保护 API 方面,有两种主要方法

  1. 基于 Cookie 的方法。这是传统的方式,您使用标准表单对用户进行身份验证,然后设置表单身份验证 cookie。所有未经授权的请求都会将用户带到登录页面。如果 UI 前端始终支持您的 API 来登录此方法,则可以正常工作。
  2. 其次是在请求标头中使用授权令牌。用户通过身份验证后,他将获得一个身份验证令牌,他必须将其附加到 Authorize HTTP 标头中的每个后续请求。点击此处了解详情ASP.NET Web API 中的个人帐户 http://www.asp.net//overview/authentication/individual-accounts-in-aspnet-web-api。这样做的优点是您可以公开您的 API,而无需登录页面。

但请记住,使用第二种方法时,身份验证令牌必须存储在客户端,因为所有后续请求都需要此令牌。看看这篇博文Cookie 与令牌。使用 Angular.JS 进行正确的身份验证 http://blog.auth0.com/2014/01/07/angularjs-authentication-with-cookies-vs-token/了解如何使用令牌。

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何保护我的 AngularJS 和 Web Api 应用程序 的相关文章

随机推荐

  • Google Apps 脚本/表返回错误请求 400

    我有一个在 Google Sheet 上运行的相当简单的脚本 该脚本接受 Webhook POST 并将 Webhook 的内容写入电子表格中的新行 该脚本按预期运行 并在收到数据时写入新行 但是 由于某种原因 我发送 webhook 的应
  • 如何从firebase实时数据库中删除?

    I am using Firebase realtime database in Android app and have data like this 如何删除 Apple 记录 如图所示 根据文档 要删除您调用的项目移除值 关于参考 但
  • 运行打包代码时出现 KeyError: 0L

    我有一个名为rra py具有以下骨架结构 usn usnl from bs4 import BeautifulSoup import re import asys import glob import os import sys impor
  • 如何检索数据库(如雪花或任何此类数据库)中的所有目录名称、模式名称和表名称?

    我需要删除一些列并将雪花表中的数据大写 为此 我需要循环遍历所有目录 数据库 其各自的模式 然后是表 我需要在 python 中列出目录模式 然后列出表 然后我将执行 SQL 查询来执行操作 如何继续 1 列出所有目录名称 2 列出所有模式
  • Python:测试空集交集而不创建新集

    我经常发现自己想要测试两个集合的交集而不使用交集的结果 set1 set 1 2 set2 set 2 3 if set1 set2 print Non empty intersection else print Empty interse
  • URL 中的 CSS 选择器

    当你有这样的网址时www example com signup 浏览器所做的只是将其视图集中在具有 id 的 HTML 元素上signup 是对的吗 如果元素以这种方式聚焦 是否可以更改其 CSS 样式 E g 假设我有一个 div 元素
  • 基于 IP 和引荐来源网址的 PHP 重定向

    我正在尝试根据用户的 IP 和空白引荐来源网址将我的网络中的用户重定向到我们网站上的特定登录页面 该代码可以工作 但最终会陷入重定向循环 如何打破重定向循环以正确重定向用户 谢谢 visitor SERVER HTTP REFERER cl
  • Matplotlib 依赖滑块

    我想通过选择三角形的权重来选择三角形的一个点 这应该通过控制 2 个滑块来完成 matplotlib widgets Slider 这两个滑块表示定义点的三个权重中的两个 第三个权重很容易计算为1 0 slider1 slider2 现在很
  • wcf 配置文件与代码配置的优缺点

    我有一个自托管 C WCF 服务 它为各种目的创建 20 多个端点 每个都在代码本身中配置 并在服务的 app config 中使用一些基本配置项 例如端口和地址 该服务对于经过测试的客户来说效果很好 但尚未经过广泛测试 我对标准 wcf
  • 休眠:刷新、驱逐、复制和刷新

    我希望我知道这个列表中的每个项目到底是什么 它是如何工作的 后果是什么以及什么时候是正确的使用时间 Refresh Evict 复制 Flush 我什至想知道每个人的作用 但我不太确定 所以我请求你的帮助 因为我真的很想了解它 我知道这是一
  • 使用 Javascript SDK 创建 Parse.File

    我遵循了法律条文 Javscript SDK 以及许多变体 但到目前为止我还无法将图像保存到 Parse File 我开始认为这是他们在放弃平台之前从未完成的代码 这是我的错误 无法构造 文件 需要 2 个参数 但仅存在 0 个 这是我的代
  • Rails/PostgreSQL - 查询更新所有日期添加 1 天

    我想执行 update all 查询来更新日期时间列 在所有行上将该列的当前值添加 1 天 我可以使用 each 和 update 来实现这一点 但在单个查询中执行会更有效 使用 Rails 和 PostgreSQL 可以实现这一点吗 UP
  • UnicodeDecodeError:“utf-8”编解码器无法解码位置 1 中的字节 0x8b:在 pandas 中读取 csv 文件时起始字节无效

    我知道类似的问题已经被问过 我已经看过所有这些问题并尝试过 但没有什么帮助 我正在使用 OSX 10 11 El Capitan python3 6 虚拟环境 也尝试过没有它 我使用的是jupyter笔记本和spyder3 我是 Pytho
  • java.lang.IllegalArgumentException:只能使用低 16 位作为 requestCode

    我正在写一个应用程序 其中Activity A发射Activity B using startActivityForResult intent 101 但当调用时 它会返回以下错误日志 E AndroidRuntime 1708 java
  • ASP.NET MVC 中的依赖下拉列表

    目前我有两个表 团队和员工 我正在完美填充团队的下拉列表 接下来我尝试根据员工团队的 selectedId 填充第二个下拉列表 控制器 GET CalView public ActionResult Index string ses str
  • 使用 Eigen 库存储 3D 数据

    如何使用 Eigen C 库存储 3D 数据 矢量用于 1D 数据 矩阵用于 2D 数据 但什么是 3D 数据 或者是否可以创建矩阵向量 您可以使用张量模块 但它还不稳定 Eigen Tensor
  • 在内核中添加新的 IOCTL(数字范围)

    我正在编写新的内核模块 并添加实现新的 IOCTL IOCTL 的编号是否应该遵循任何规则 也许有一些 用户范围 我在嵌入式平台上使用内核 2 6 21 IOCTL 被定义为与设备相关的 如果有 标准 ioctls 供人们实现 这些将是像这
  • 如何在 Xamarin.Mac 中捕获应用程序级别的按键事件

    我有一个 Xamarin Forms 应用程序 并使用主窗口中的 PreviewKeyDown 事件成功捕获 WPF 中的应用程序级别按下事件 如何在 AppDelegate 或其他方式中对 Xamarin Mac 执行相同的操作 您可以添
  • 如何在先前输入后使用 C++ 中的“获取”函数?

    我尝试输入数据gets 函数 但每当程序执行到留置权时gets 它会忽略它 当我使用gets 没有之前的数据输入 它可以正常运行 但是当我在输入数据后使用它时 就会出现问题 这是在先前的数据输入之后使用它的代码 因此在执行中我无法将数据输入
  • 如何保护我的 AngularJS 和 Web Api 应用程序

    我在 ASP NET Web Api 服务器端使用 AngularJS 在我看来 身份验证现在已经变得轻而易举了 或者这太好了以至于令人难以置信 所以我正在考虑使用Web Api的 个人用户帐户 身份验证 我想这就是我所需要的 只要每个请求