来自已安装应用程序的 OpenID 身份验证

2023-12-12

我目前正在计划一个新的网络项目。客户端将使用常规 Web 浏览器进行连接,如果是常规支持 Java 的手机,则使用 j2me 客户端进行连接。我真的很想利用 OpenID 身份验证。对于常规网络浏览器来说,事情非常简单。但是,我真的不确定已安装的应用程序(例如安装在移动设备上的 j2me 客户端) - 常规 OpenID 身份验证是通过在特定 OpenID 提供商的网页上输入用户名/密码来执行的 - 这是一个很大的限制:)

有人处理过这样的情况吗?是否可以从移动 j2me 客户端为使用 OpenID 的站点创建身份验证机制?

目前,我想到的解决方案是,想要从手机连接的用户在对自己进行身份验证(常规浏览器身份验证)后从服务器网站下载必要的 j2me 应用程序。移动客户端应用程序可以在服务器上动态组装,并嵌入与特定登录 OpenID 用户关联的 SSL 证书。之后,j2me 客户端无需输入任何用户名/密码即可向服务器进行身份验证。考虑到手机被盗等情况,将存储在服务器上的数据并不那么敏感。

有人能想出更好的解决方案吗?


IMO 对于您正在做的事情的最佳解决方案是将 OAuth 与 OpenID 结合使用。您在 RP 上使用 OpenID 没问题。但对于需要访问该网站的已安装应用程序,它们应该使用 OAuth 来获得授权。该流程将如下所示:

  1. 用户在其设备上安装应用程序
  2. 在安装期间或首次启动时,该应用程序有一个“授权我”按钮。
  3. 用户按下按钮,网络浏览器会弹出客户端应用程序需要访问数据的网站。
  4. 用户使用其 OpenID 登录该网站
  5. 网站现在询问“您想授权客户端应用程序 X 吗?”
  6. 用户同意并关闭浏览器。
  7. 客户端应用程序重新出现并显示“谢谢”。现在拥有访问用户数据所需的 OAuth 令牌,而无需用户再次登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自已安装应用程序的 OpenID 身份验证 的相关文章

随机推荐

  • 迭代 python 字典以仅检索所需的行

    我从外部源获取 HTML 表格格式的数据 from xml etree import ElementTree as ET s table tr th Release th th REFDB th th URL th tr tr td 3 7
  • 当当前访问令牌过期时,我如何获取新的访问令牌,google firebase auth?

    我在客户端使用 firebase 在服务器使用 firebase admin 在客户端 我使用 signInWithPopUp 使用 google 帐户登录我的网络应用程序 然后在客户端接收 accessToken expirationTi
  • MySQL查询以特定顺序返回结果,无需order by

    是否可以使 mysql 查询返回没有默认顺序的值 例如 我使用下面的查询 select id product name from sample where id product in 675 123 745 954 但它按 id produ
  • 解析 Unity 推送示例不起作用

    我正在努力在我的 Unity Android 应用程序上使用 Parse 已经工作了几天但还没有成功 无论我多么努力 我都无法为 Android 注册我的设备令牌 而这是向 Android 发送推送通知所需的 下面是我的示例代码和清单片段
  • C++ 友元类 std::vector

    是否可以便携地执行以下操作 struct structure structure private only allow container copy construct structure const structure in genera
  • Google 域 API 访问错误

    我是谷歌应用程序帐户用户 当我尝试访问 Google Plus Domains API 时 出现此错误 不允许访问 Google Domains API 因为用户已同意不兼容的范围 我要求的范围是 https www googleapis
  • Windows Workflow 4 关联查询在实例密钥计算中包含网站实例名称并失败

    我正在尝试在 Azure 上托管一个长时间运行的工作流服务 但我遇到了关联问题 我已将 timeToUnload 和 timeToPersist 设置为 0 并且在工作流程中勾选了 发送前保留 这不是持久性问题 而是与实例键的计算方式有关
  • 如何用concat替换pandas的append?

    你能帮我在这段代码中将append替换为concat吗 saida pd DataFrame for x y in lCodigos items try df consulta bc x logging info f Indice y li
  • C# 中根据框架版本进行条件编译

    是否有任何预处理器符号允许类似的事情 if CLR AT LEAST 3 5 use ReaderWriterLockSlim else use ReaderWriterLock endif 或其他方式来做到这一点 我认为没有任何预定义的
  • Android 支持库中的 ActionBar#setDefaultDisplayHomeAsUpEnabled 是什么?

    我知道什么setDisplayHomeAsUpEnabled确实如此 但是什么是setDefaultDisplayHomeAsUpEnabled因为我只能想知道 没有找到文档 除了正在使用之外找不到任何东西 该方法仅在Support Act
  • 审查委员会差异未上传

    我目前正在尝试使用审查板进行比较 但不断收到模糊的错误消息 Error uploading diff Your review request still exists but the diff is not attached 调试消息也没有
  • 在 PHP 中使用soap 添加 Jira 注释 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 如何在 PHP 中使用 SOAP 在 Jira 中添加注释 soapClient
  • 如何在 gnuplot 中创建 3d 相空间图?

    看这篇文章封闭但未加密 我有一些二进制数据 我想执行该文章中所示的 gnuplot 但使用我的数据 对于三维相空间图 序列 a b c d e f等可以作为空间坐标 a b b c c d b c c d d e c d d e e f 等
  • 如何在 Android OpenGL ES 中应用拖放和缩放

    我有一个问题 不知道如何添加触摸或长按来操纵 OpenGL 平移和缩放参数 目前我的编码是在手机屏幕中间显示纹理 我想用手指拖动和缩放纹理 那么如何操作OpenGL翻译和缩放参数呢 这是我的主要课程 import android app A
  • `fwrite` 在 `fread` 之后不能直接工作吗?

    我有一个使用 stdio 来读取和写入二进制文件的程序 它会缓存当前流位置 并且如果读 写偏移量已经位于所需位置 则不会进行查找 然而 一个有趣的问题出现了 那就是当读取一个字节并写入下一个字节时 它实际上并没有被写入 这是重现该问题的程序
  • ContextMenu 并以编程方式选择一个项目

    似乎没有用于以编程方式 选择 ContextMenu 项的 API 我所说的选择相当于点击向上和向下键 或将鼠标悬停在某个项目上 当显示上下文菜单时 我实际上只需要选择第一项 我试图在显示菜单时触发向下键事件 但什么也没发生 也许我错误地构
  • 使sql视图可编辑

    我已经制作了这个 sql 视图来组合一些表并且它可以工作 但它不可编辑 我无法插入 删除 编辑 数据directly在其中 但前提是我在初始表中这样做 那么有什么方法可以直接在视图中执行相同的操作 编辑数据 Create view tabl
  • 如何使用jupyter_client获取执行结果?

    我想使用 jupyter client 执行一些 python 代码并获得结果 这是我的示例代码 但我无法得到输出hello world 有人可以帮助我吗 谢谢 import jupyter client kernel manager ke
  • Jackson 和 java.sql.Time 序列化/反序列化

    考虑这个属性Hibernate 管理实体 JsonFormat pattern HH mm Column name start time private java sql Time startTime 我发布了一个JSON 对象为 Requ
  • 来自已安装应用程序的 OpenID 身份验证

    我目前正在计划一个新的网络项目 客户端将使用常规 Web 浏览器进行连接 如果是常规支持 Java 的手机 则使用 j2me 客户端进行连接 我真的很想利用 OpenID 身份验证 对于常规网络浏览器来说 事情非常简单 但是 我真的不确定已