我目前正在计划一个新的网络项目。客户端将使用常规 Web 浏览器进行连接,如果是常规支持 Java 的手机,则使用 j2me 客户端进行连接。我真的很想利用 OpenID 身份验证。对于常规网络浏览器来说,事情非常简单。但是,我真的不确定已安装的应用程序(例如安装在移动设备上的 j2me 客户端) - 常规 OpenID 身份验证是通过在特定 OpenID 提供商的网页上输入用户名/密码来执行的 - 这是一个很大的限制:)
有人处理过这样的情况吗?是否可以从移动 j2me 客户端为使用 OpenID 的站点创建身份验证机制?
目前,我想到的解决方案是,想要从手机连接的用户在对自己进行身份验证(常规浏览器身份验证)后从服务器网站下载必要的 j2me 应用程序。移动客户端应用程序可以在服务器上动态组装,并嵌入与特定登录 OpenID 用户关联的 SSL 证书。之后,j2me 客户端无需输入任何用户名/密码即可向服务器进行身份验证。考虑到手机被盗等情况,将存储在服务器上的数据并不那么敏感。
有人能想出更好的解决方案吗?
IMO 对于您正在做的事情的最佳解决方案是将 OAuth 与 OpenID 结合使用。您在 RP 上使用 OpenID 没问题。但对于需要访问该网站的已安装应用程序,它们应该使用 OAuth 来获得授权。该流程将如下所示:
- 用户在其设备上安装应用程序
- 在安装期间或首次启动时,该应用程序有一个“授权我”按钮。
- 用户按下按钮,网络浏览器会弹出客户端应用程序需要访问数据的网站。
- 用户使用其 OpenID 登录该网站
- 网站现在询问“您想授权客户端应用程序 X 吗?”
- 用户同意并关闭浏览器。
- 客户端应用程序重新出现并显示“谢谢”。现在拥有访问用户数据所需的 OAuth 令牌,而无需用户再次登录。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)