首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该在API中使用哪种身份验证策略?

我应该在API中使用哪种身份验证策略?
EN

Stack Overflow用户
提问于 2015-12-04 13:47:55
回答 1查看 3.7K关注 0票数 5

我有一个客户端的角度-js应用程序。我有一个服务器端的nodejs。客户端和服务器端应用程序位于不同的域上。客户端使用API获取或发布一些数据。另外,客户端需要从服务器端获取图像,并在浏览器中显示它们。

我使用护照nodejs模块进行身份验证。我不知道哪种认证策略更适合我。我认为有两种类型的认证策略:基于令牌的认证策略和基于cookie的身份验证策略。我认为这两种类型对我来说都是无用的:

  1. 如果我使用基于令牌的策略,那么我应该将每个请求中带有令牌的身份验证头发送到API。我可以在AJAX请求中发送头部,但是如果我想显示位于服务器端的图像,我就有问题了。因为浏览器不会在<img>标记中发送标头。
  2. 如果我使用cookie,那么图像就没有问题了。但是我在AJAX请求方面有问题。因为会话cookie存储在服务器端应用程序的域上。如果我从客户端域发送AJAX请求,那么我应该在每个请求中发送cookie。我使用XmlHttpRequest来实现AJAX,我应该使用withCredentials选项来发送cookies。但是在跨域请求中,浏览器将在每个AJAX请求之前发送一个预运行(选项)请求。浏览器不会发送带有选项请求的cookie。这对我来说是个问题,因为如果没有授权,服务器端API就无法对选项请求做出正确的响应。

采用的解决办法是什么?

EN

回答 1

Stack Overflow用户

发布于 2015-12-05 15:54:37

理解web应用程序和web服务之间的区别是非常重要的。web应用程序提供标记、JavaScript、CSS和图像文件,并且经常使用基于cookie的身份验证(但可以使用任何其他隐式认证机制)。浏览器提出的任何请求都会自动进行身份验证。

另一方面,Web服务通常使用承载令牌身份验证。当浏览器、fat客户端或移动设备上的客户端与API通信时,它会在HTTP请求的Authorization头中发送令牌。报头必须显式地附加到执行HTTP请求的JavaScript或本机代码中的请求。

在单页应用程序(SPA)中,web应用程序丢失,并且在不进行身份验证的情况下从浏览器中提供标记、JavaScript、CSS和图像。只有对web服务的请求进行身份验证,通常使用JWT令牌。

在这种情况下,如果只希望授权用户能够下载图像和其他文件,则应考虑构建web应用程序。使用类似或OpenID连接的安全协议对用户进行身份验证。选择一个既支持web应用程序的OpenID连接,又支持web服务的OAuth2的授权服务器。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34098031

复制
相关文章
水平滚动条
主要用到并排Div 的父级设置white-space: nowrap,并排的div设置display:inline-block;
tianyawhl
2019/07/16
2.6K0
[iOS] WSHorizontalPickerView 图片水平滚动封装
之前这篇文章传送门本来是记录自己练手的demo的,后来很多人来问我要代码。今天就抽时间封装了一下,没有考虑太多情况,等我有空再去仔细考虑吧。
wOw
2018/09/18
3K0
WPF 让 TextBox 支持水平滚动
超级简单的方法,只需要设置 HorizontalScrollBarVisibility 可见就可以了
林德熙
2022/08/12
9850
CSS——多列
多列属性可以将文本设计成像报纸杂志那种多列排版的布局,类似于Microsoft Word中的段落分栏功能。
Html5知典
2019/11/26
1.3K0
pandas dataframe 新增单列和多列
dataframe assign方法,返回一个新对象(副本),不影响旧dataframe对象
lovelife110
2021/01/14
4.5K0
表单水平文字滚动,效果还有阴影
加菲猫的VFP
2023/08/21
2720
表单水平文字滚动,效果还有阴影
自定义View实现水平滚动控件
      前几天项目中需要使用到一个水平可滚动的选择条,类似下图效果(图片是从简书上一位作者那儿找来的,本篇也是在这位作者的文章的基础上修改的,站在大神的肩膀上,哈哈,由于原文没有提供demo,而且
coderZhen
2018/06/28
9410
jQuery无缝图片横向(水平)/竖向(垂直)滚动
jQuery的一个不错的小插件,记性越来越差了,整理一下贴在这里,方便以后Copy & Paste <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title> </title> <script typ
菩提树下的杨过
2018/01/22
17.4K0
有意思的水平横向溢出滚动
最近接到一个很有意思的需求,能否做到当内容横向溢出时,依然能够使用鼠标滚轮对内容进行滚动的方法。
Sb_Coco
2022/09/28
2.6K0
有意思的水平横向溢出滚动
excel 多列内容拼接
例如想要拼接  A2 和 B2 的内容生成一个新列,A2 内容为 320,B2 内容为 480,我们生成新列,需要拼接两列内容,中间同时拼接 * ,新列公式如下:
蓓蕾心晴
2022/10/27
1.5K0
联合索引(多列索引)[通俗易懂]
联合索引是指对表上的多个列进行索引,联合索引也是一棵B+树,不同的是联合索引的键值数量不是1,而是大于等于2.
全栈程序员站长
2022/09/05
2.7K0
如何纯CSS实现标题栏、表格头水平滚动垂直不滚动
有些报表会很宽,浏览器水平放不下,需要水平滚动显示,这个可以设置overflow-y:hidden实现,很基本的实现,没什么难度。
周陆军博客
2023/05/07
1.7K0
JqGrid实现超长水平(左右)滚动条功能
使用JqGrid来实现列表功能非常方便快捷,但在使用的过程中还会遇到一些定制化的问题。这篇文章来跟大家说一下当列表中数据比较多时,如何实现水平(左右)滚动来确保能够查看完整的信息。
程序新视界
2020/05/18
3.9K0
MFC 控件编程之水平滚动条跟垂直滚动条
  首先在操作滚动条的时候.我们要知道滚动条的一些属性. 比如我们要设置 最大值 最小值. 以及每次递增的值是多少.都要设置.
IBinary
2019/05/25
2.9K0
MySQL索引中的前缀索引和多列索引
正确地创建和使用索引是实现高性能查询的基础,本文笔者介绍MySQL中的前缀索引和多列索引。
玖柒的小窝
2021/11/06
4.7K0
点击加载更多

相似问题

水平滚动的多列问题

21

列和水平滚动

12

有多列的页面,水平滚动,没有垂直滚动

22

具有水平滚动和自动列宽和高度的多列CSS列表

36

具有水平滚动和图像的自动多列固定高度问题

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档