如何在单页面应用程序中进行Dropbox身份验证而无需打开新窗口?

Ton*_*leh 8 javascript linkedin singlepage dropbox-api

我有一个单页应用程序,与Dropbox和LinkedIn等其他服务集成.例如,Dropbox具有出色的API,我通过在另一个窗口中打开Dropbox的身份验证链接来获得身份验证.一旦用户进行身份验证,我会要求他们关闭该新窗口以返回我的应用程序.

显然,这不是最理想的,因为它会使用户远离我的应用程序,甚至在平板电脑上更加繁琐.

我如何在应用程序中进行身份验证,例如灯箱或模式形式?

请注意,集成本身发生在服务器端而非客户端.目前,Dropbox身份验证页面有一个回调页面,它向我的服务器发出身份验证成功的信号,我将其存储在数据库的用户表中以备将来使用.

注意:赏金评论应为:代码样本是非常需要但不是必需的.

Ale*_*erg 11

你提出的建议是打败安全模型,因此不可能.用户应该能够看到真实页面的URL以进行验证.想象一下,当您使用Paypal进行付款时,您可能会在输入重要数据之前检查您是否在paypal.com上?这同样适用于所有其他应用.这是一个非常难看的流程,但业界今天提出的最好.

理想的流程是您将用户重定向到第三方网站或应用程序,用户登录并授权,然后重定向回给您.本机应用程序具有切换到另一个本机应用程序的好处,因此流程有点不那么难看.

解决这个问题的方法是做一个应用程序,询问第三方服务的用户名和密码,然后在幕后进行身份验证.这可能会阻止用户使用您的应用,这非常危险.我不推荐它.

  • 我做了一个快速测试,结果发现 Dropbox 在响应头中发送了 [X-Frame-Options](https://developer.mozilla.org/en-US/docs/The_X-FRAME-OPTIONS_response_header),使得 iframe 方法被描述by Andreas 在这种情况下无法使用。不确定 ChildBrowser 是否适用于电话应用程序,但答案是适用于一般网络应用程序的正确答案。谢谢亚历克斯。 (2认同)