在本机应用程序和网站之间共享凭据

2024-04-02

我正在开发的一个应用程序允许用户登录支持 OAuth 的后端。因此,应用程序仅了解身份验证令牌和用户元数据,而不了解用户的凭据。

在应用程序中,用户可以点击在浏览器中打开链接的链接。这些资源也受到 OAuth 的保护,登录原生应用时获得的 token 也与 Web 相关。

我希望用户的凭据以标准 OAuth 方式从本机应用程序流向 Web 浏览器(通过将其作为Authorization标题)。

Android 似乎通过其共享凭证 https://developers.google.com/identity/smartlock-passwords/android/associate-apps-and-sites功能,但我找不到 iOS 的等效功能。我确实找到了共享网络凭据 https://developer.apple.com/reference/security/shared_web_credentials功能,但这似乎需要了解用户的凭据。

如何将 OAuth 令牌从本机应用程序流向它打开的 Web 浏览器?


关联域和共享 Web 凭据在这里似乎不是一个好方法。

您有两个选择:

  1. 将 OAuth 访问令牌作为 URL 查询字符串参数传递给 网页浏览器。https://x.y.z/?access_token=abc您必须操作嵌入的 URL 并确保您的后端理解这一点。 非常常见且简单的方法。许多网站,例如 Facebook 和 Google 在 URL 中传递访问令牌。
  2. 如果您使用应用内浏览器(UIWebView、WKWebView),您可以拦截 URL 请求并自行添加授权标头。看this https://stackoverflow.com/questions/25539837/how-to-add-customize-http-headers-in-uiwebview-request-my-uiwebview-is-based-on对于 UIWebView 和this https://stackoverflow.com/questions/28984212/how-to-add-httpheader-in-request-globally-for-ios-swift/37474812#answer-37474812对于WKWebView(比UIWebView难一点)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在本机应用程序和网站之间共享凭据 的相关文章

  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • Firebase 身份验证问题 - 通过电子邮件地址检查用户是否存在

    我在 Firebase 上创建了一个帐户 它有效 但现在我想阻止人们使用已存在的电子邮件地址创建帐户 这是代码 DatabaseManager shared userExists with email completion weak sel
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • 如何让按钮闪烁?

    我试图在扫描正确时将按钮的颜色 只是闪烁 闪烁 更改为绿色 在出现问题时将按钮的颜色更改为红色 我可以用这样的视图来做到这一点 func flashBG UIView animateWithDuration 0 7 animations s
  • 哪些 Flutter 插件或功能可以利用外部 iOS/Android 显示器来显示与主显示器不同的内容

    我正在构建一个跨平台应用程序 需要在外部显示器上显示不同的视图 通常通过连接到 LCD 投影仪的 HDMI 适配器电缆连接 Flutter 是否能够在内置的外部显示器上显示不同的屏幕 在现有的 Flutter 插件中还是使用现有的 Flut
  • 使用 Apache HTTPd 模块的 OAuth 2.0 身份验证

    是否可以使用 Apache HTTPd 服务器模块来实现 OAuth 2 0 或 1 0 我选择这条路线是因为每个请求都会首先到达 HTTPd 模块 因此我必须从那里进行身份验证 如果可能的话 请分享相关链接 我要补充一下尤金尼奥的答案mo
  • 将 UIToolBar 添加到所有键盘(swift)

    我正在尝试以尽可能少的重复次数将自定义 UIToolBar 添加到我的所有键盘中 我目前的做法要求我将代码添加到所有 viewDidLoads 中 并将每个文本字段的委托分配给我正在使用的 viewController 我尝试创建自己的 U
  • 如何使用 CNContacts 快速获取手机号码?

    我有一些代码可以检索用户联系人中的所有电话号码 但只想过滤掉手机号码 目前 我只是通过将第一个数字为 或第二个数字为 7 的数字添加到数组中来实现此目的 如下所示 func findContacts gt CNContact let key
  • 错误消息:您输入的捆绑包 ID 已被使用

    我正在尝试发布一个 iPhone 应用程序 这不是第一个 我过去已经发表过其他的 因此 我在第一个和第二个表单中输入了所需的信息 然后填写了第三个大表单 您还可以在其中上传图标和屏幕截图 好吧 我在上传屏幕截图之前按下了 保存 按钮 因为我
  • 如何为 iPhone 6+、6 和 5 指定不同尺寸?

    我想让 iPhone 6 6 和 5 上的视图看起来几乎相同 在附图中 我的意思是 例如 取消 按钮在 iPhone 5 中距离屏幕左边缘应为 30 像素 在 6 中为 35 像素 在 6 中为 45 像素 其他元素也类似 如何为每种类型设
  • BigQuery 未显示链接的 Firebase Analytics 事件日志的任何数据集

    我将我的帐户链接到 Big Query 但 Firebase Analytics 事件不会自动加载到 BigQuery 中 显示 未找到数据集 警告 我的工作进度附在下面 请查收 I have getting firebase Analyt
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • 将类型传递给通用 Swift 扩展,或者理想情况下推断它

    说你有 class Fancy UIView 你想找到所有兄弟姐妹Fancy意见 没问题 https stackoverflow com q 37232743 294884 for v UIView in superview subview
  • 如何删除 UITableView 中的缩进?

    首先 我对此很陌生 我很可能忘记了一些非常简单的事情 问题 我正在制作一个应用程序 在 a 中显示来自 imgur com 的随机图像tableView 由于某种原因 所有单元格都会缩进少量 如下图所示 我摆弄了许多设置storyboard
  • Xcode 异步单元测试在主线程上等待

    我正在尝试使用 Xcode 中的单元测试来测试一些异步代码 但主线程被阻塞 问题在于 某些正在测试的代码期望从 iOS 类 AVFoundation 接收回调 但是 AVFoundation 类似乎只会在主线程上回调 问题是 如果我正在进行
  • 使用输入类型 = 文件捕获照片时移动 safari 崩溃

    我正在使用输入类型文件在 iOS 中启动相机 我正在使用以下代码行
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • 上传存档错误:“缺少 iOS 发行版签名身份......”

    我正在尝试使用 Xcode 将我的 iOS 应用程序存档上传到 iTunes Connect 但是当我单击 上传到 App Store 时 出现错误 Xcode 尝试查找或生成匹配的签名资产并 由于以下问题未能做到这一点 缺少 iOS 为
  • 如何在 UITableView 的 switch 语句中创建变量?

    我正在构建一个包含三个部分的 tableView 我已经完成了前两个工作 但最后一个有点阻力 我的问题似乎涉及尝试在 switch 语句中声明变量 实际上是嵌套的 switch 语句 据我所知 这不是一个好主意 但在这种情况下 这似乎是唯一
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 蓝鸟承诺解析(数据)在客户端代码中未定义

    希亚斯 我有一个简单的应用程序 客户端期望得到一个承诺作为结果 但是在调用resolve 方法时 承诺不断返回未定义的结果 客户端代码 UsersRepo findOneAsync id id then function err resul
  • 为函数想出好的名字时遇到困难

    因此 我经常难以用简洁的名称描述函数 对于重用的功能来说 这通常不是问题 但通常需要将大型流程分解为子功能 这些通常会得到奇怪的名字 例如connectionsToAccessLines or handleWallVisionSplit或类
  • 在 C 预处理器中,“#”字符是否必须位于行的开头? [复制]

    这个问题在这里已经有答案了 我已经用 C 语言编程有一段时间了 在此期间 我了解到将预处理器指令之前的 字符放在第一列是一种常见的约定 Example include
  • 如何在 Foursquare Venues 搜索 API 中使用 CategoryId

    当包含categoryId参数时 我从API查询中得到了意外的结果 例如 当使用以下参数搜索马萨诸塞州波士顿的 The Citizen Public House 时 ll 42 3489027315987 71 096134185791 q
  • random.expovariate 相当于泊松过程

    我在某处读到 python 库函数 random expovariate 产生相当于泊松过程事件的间隔 真的是这样吗 或者我应该对结果施加一些其他功能 严格阅读你的问题 是的 这就是 random expovariate 所做的 expov
  • 什么是热点?

    我刚刚听说过 HotSpot JVM 而不是 Oracle JRockik JVM 什么是热点 这是旧的 Sun JVM 还是其他什么 HotSpot 是附带的 Sun JVM 它支持频繁使用的代码部分的即时编译 出于所有实际目的 它是 S
  • 如何从消息机器人中删除“Powered by ManyChat”页脚

    我正在为消息平台开发一个聊天机器人 但我发现自己对用户文本输入字段的页脚上出现的 ManyChat 感到着迷 我已成为该页面的管理员 并继续从该页面的已连接应用程序列表中删除许多聊天 但页脚仍然存在 也许我必须调用 Messenger 平台
  • 是否可以验证html5中input=file的大小和类型

    我正在读这个http dev w3 org html5 markup input file html http dev w3 org html5 markup input file html 但我只找到了 accept 属性 我试过这个
  • Python:检查对象是否是序列

    在 python 中 有没有一种简单的方法来判断某些东西是否不是序列 我尝试这样做 if x is not sequence但Python不喜欢那样 iter x 将提出一个TypeError if x不能迭代 但该检查 接受 集合和字典
  • 获取我的应用程序的当前 dot net 版本

    如何获取我的 asp net 应用程序的正在运行的 dot net 版本 我尝试了这里的解决方案 有没有一种简单的方法来检查 NET Framework 版本 https stackoverflow com questions 951856
  • 如何解决 HttpURLConnection 上的 NullPointerException?

    我正在开发一个Android应用程序 使用ExoPlayer进行视频播放 使用Glide进行图像显示 使用下载库进行文件下载 它们都有与HttpURLConnection相关的NullPointerException 我确信使用的链接是可用
  • Java中的BlockingQueue是完全线程安全的吗

    我知道文档说该对象是线程安全的 但这是否意味着从所有方法对它的所有访问都是线程安全的 所以如果我打电话put 同时从多个线程上进行操作take 在同一时刻 不会有什么不好的事情发生吗 我问这个问题是因为这个答案让我再次猜测 https st
  • SQL:使用 FOR XML 每个元素一行

    我有一个 SQL Server 2005 查询 它生成一个大结果集 最多几 GB SELECT FROM Product FOR XML PATH Product 运行查询会生成一行 其中包含具有许多产品元素的文档 Row 1
  • 基于角色在GridView中显示编辑按钮

    我有一个网格视图 我添加了AutoGenerateEditButton True 我想向属于特定角色的用户显示该按钮 如果不是 则不会呈现按钮 你有什么建议吗 我必须处理哪个事件才能实现该目的 我是否必须使用模板驱动的控件 例如 ListV
  • 如何将 csv 文件导入到使用 R 内核的 Google Colab 中?

    我的计算机上有一个 csv 文件 可以将其上传到 Google 云端硬盘 我正在尝试使用 Google colab 但使用 R 而不是 Python 我怎样才能导入这个csv https stackoverflow com a 579272
  • 在scala中如何将一个案例类转换为另一个不受代码更改字段添加影响的案例类?

    case class Cat color Int isFat Boolean case class Kitten color Int isFat Boolean 我想从 Cat 构造 Kitten 但希望在不传递所有参数的情况下自动执行此操
  • 如何通过 github api 获取热门 github 存储库列表?

    我想要获取像这样的 github 趋势存储库列表 https github com trending l java https github com trending l java但我没有找到任何类似的请求方法https developer
  • 将日期从波斯语转换为公历

    如何使用 System globalization PersianCalendar 将波斯日期转换为公历日期 请注意 我想转换我的波斯日期 例如今天是 1391 04 07 并获得公历日期结果 在本例中为 06 27 2012 我正在数秒等
  • 在 Emacs 中设置选项卡大小

    我使用 Emacs 作为编辑器 我想将制表符大小设置为四个空格 在我的 emacs文件我有以下内容 setq default tab width 4 我也尝试过 set default tab width 4 不管怎样 当我打开 emacs
  • 在本机应用程序和网站之间共享凭据

    我正在开发的一个应用程序允许用户登录支持 OAuth 的后端 因此 应用程序仅了解身份验证令牌和用户元数据 而不了解用户的凭据 在应用程序中 用户可以点击在浏览器中打开链接的链接 这些资源也受到 OAuth 的保护 登录原生应用时获得的 t