Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我应该在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

复制
相关文章
android 两个APK调用
@Override     public boolean onTouchEvent(MotionEvent event) {          ComponentName componetName = new ComponentName(                  //这个是另外一个应用程序的包名                 "com.apk2",                 //这个参数是要启动的Activity                 "com.apk2.MainActivity"); //        Intent intent= new Intent("chroya.foo");         Intent intent= new Intent();         //我们给他添加一个参数表示从apk1传过去的         Bundle bundle = new Bundle();         bundle.putString("arge1", "这是跳转过来的!来自apk1");         intent.putExtras(bundle);         intent.setComponent(componetName);         startActivity(intent);         return super.onTouchEvent(event);     }
用户2192970
2019/02/21
4430
详解如何把.py文件转.apk
Kivy是一套Python下的跨平台开源应用开发框架,官网,我们可以用它来将Python程序打包为安卓的apk安装文件。以下是在win7 64位环境中的具体配置步骤(安装和配置的过程中会下载很多东西,确保你能够稳定地访问外网--即能访问YouTuBe等网站)
用户6367961
2019/09/29
11.9K0
PhalApi-APK--APK文件解包处理
#PhalApi-APK -- APK文件解包处理 ##前言 应为笔者这边涉及到的项目有需求对APK进行解包的操作,所以贡献此扩展希望大家喜欢 附上: 官网地址:http://www.phalapi.
喵了个咪233
2018/03/02
1.9K0
PhalApi-APK--APK文件解包处理
.apk反编译_apk反编译教程
大家好,又见面了,我是你们的朋友全栈 原文作者:[color=blue][b]lpohvbe[/b][/color] 原文地址:[url]http://blog.csdn.net/lpohvbe/article/details/7981386[/url] 本人接触不久,有错误望请各位神牛不吝赐教,仅仅希望把自己这段时间研究的东西分享一下,如果可以帮助到有需要的童鞋万感荣幸。欢迎评论转载,但请加上转载来源谢谢!请尊重开发者劳动成果!请勿用于非法用途!
全栈程序员站长
2022/09/29
9.6K0
细说Android apk四代签名:APK v1、APK v2、APK v3、APK v4
大部分开发者对apk签名还停留在APK v2,对APK v3和APK v4了解很少,而且网上大部分文章讲解的含糊不清,所以根据官网文档重新整理一份。
BennuCTech
2021/12/10
6.6K0
细说Android apk四代签名:APK v1、APK v2、APK v3、APK v4
APK安装流程详解9——PackageParser解析APK(上)
为了让咱们更好的理解谷歌的安卓团队对PackageParser的定位,我们来看下PackageParser的注释
隔壁老李头
2018/08/30
5.9K0
APK安装流程详解9——PackageParser解析APK(上)
linux可以运行apk(shell安装apk命令)
之前因为课程需要,也算是粗浅地了解过Linux,但是只是懂得一些编译内核,编译模块的知识,并没有把Linux当做日常使用的操作系统。但是最近因为实验的原因,对Linux有了兴趣,开始尝试将Linux作为日常使用的操作系统。特整理记录一些使用Linux常用知识,以供日后参考。
全栈程序员站长
2022/07/31
7K0
apk 反编译(使用android逆向助手,进行反编译apk,查看apk源码)
第二步:将apk文件拷贝到逆向助手的apktool目录,在逆向助手的apktool目录下按住shift同时点击鼠标右键,选择“在此处打开命令窗口,即CMD”
Twcat_tree
2022/11/30
3.9K0
apk 反编译(使用android逆向助手,进行反编译apk,查看apk源码)
【译】使用 APK Analyzer 分析你的 APK
本文来自“天天P图攻城狮”公众号(ttpic_dev) 本文是对 《Analyze Your Build with APK Analyzer》 的翻译。 Android Studio 2.2包含了APK Analyzer,通过它我们能够直观地看到APK的组成。使用APK Analyzer不仅能够减少你花在debug上的时间,而且还能减少你的APK大小。使用APK Analyzer,你能够实现: 查看APK中文件的绝对大小和相对大小。(译注:相对大小指的是该文件占整个APK大小的百分比) 理解DEX文件
腾讯Bugly
2018/03/23
2.5K0
APK安装流程详解10——PackageParser解析APK(下)
其中第一个parseBaseApk(File, AssetManager, int)方法,已经讲解过了,请参考APK安装流程详解9——PackageParser解析APK(上)中 五、PackageParse#parseMonolithicPackage(File, int)方法解析
隔壁老李头
2018/08/30
4.9K0
APK安装流程详解10——PackageParser解析APK(下)
【连载】聊聊 APK(四) —— 脱离 AS 手工创造 APK 文件
想进大厂,就关注「 程序亦非猿 」 时不时 8:38 推送优质文章,觉得有用,置顶加星标
程序亦非猿
2019/08/21
1.8K0
【连载】聊聊 APK(四) —— 脱离 AS 手工创造 APK 文件
9.5.3 Android Apk 反编译 & 9.5.4 Android Apk 加密
首先说一下,何为反编译,简单地说,从源码开始,经过集成开发环境编译以及签名之后得到apk文件的这个过程,我们称之为“编译”;“反编译”的话,顾名思义,粗略地说就是与“编译”相反的过程咯,也就是从apk文件开始,经过一系列工具解压最后得到源码的过程。当然,顺逆之言,说的只是起始点的逆反置换,个中具体的过程还是不尽相同的。
凌川江雪
2019/02/25
2.2K0
9.5.3 Android Apk 反编译 & 9.5.4 Android Apk 加密
【Android 逆向】APK 加壳脱壳现状 | 判断 APK 是否加壳 | APK 逆向流程
加壳覆盖率很高 : 当前的应用 , 基本上 90% 都会加壳 , 各大加固厂商 , 基本都 提供免费的加壳服务 ; 很难找到不加壳的应用 ;
韩曙亮
2023/03/30
4.1K0
【原创】Apktools反编译APK,查看apk信息,常用于安装apk失败原因分析。
目的:鉴于部分apk无法安装我们又无法知道原因时,我们需要用到工具apktools进行Apk的反编译
零点
2023/03/03
2.1K0
【原创】Apktools反编译APK,查看apk信息,常用于安装apk失败原因分析。
capacitor apk升级
npm install cordova-plugin-apkupdater import ApkUpdater from 'cordova-plugin-apkupdater'; ApkUpdater.download( 'https://your-update-server.com/update.apk', { onDownloadProgress: console.log }, function () { ApkUpdater.insta
Laikee
2022/04/25
8940
.apk 成为历史!
早在 2018 年 5 月的 Google I/O 大会上,Google 就介绍了 Android App Bundle(AAB)格式,作为其现代化开发的一部分。今年 8 月,AAB 格式将成为全新上架到 Google Play Store 应用的默认格式,已经上架的老应用暂时不会受到影响。
芋道源码
2021/07/13
9230
APK签名原理
网上已有多篇分析签名的类似文章,但是都有一个共同的问题,就是概念混乱,混乱的一塌糊涂。
全栈程序员站长
2022/07/01
8190
获取apk签名
方法一 1.解压apk 2.在META_INF目录下找到xxx.RSA文件 3.执行keytool -printcert -file xxxx.RSA目录
全栈程序员站长
2022/08/22
9680
APK 瘦身优化
官网:https://ibotpeaches.github.io/ApkTool apktool d students.apk
Yif
2020/04/23
1.4K0
APK 瘦身优化
Apk 签名验证
当app进行反编译后修改,再回编译,若出现闪退的情况时,则有可能是由于程序本身已存在签名验证,才会出现闪退,今天分享如何解决因签名验证而出现的闪退现象。
全栈程序员站长
2022/09/06
1.6K0
Apk 签名验证

相似问题

把肥皂包成捆

10

从两个apk /模块创建单个apk

12

如何将两个APK连接成一个APK?

12

把长值放进捆中

20

Android - Apk内部APK

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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