我有一个单页面应用程序,它与其他服务(如 Dropbox 和 LinkedIn)集成。例如,Dropbox 具有出色的 API,我通过在另一个窗口中打开 Dropbox 的身份验证链接来进行身份验证。用户通过身份验证后,我会要求他们关闭新窗口以返回到我的应用。
显然这是次优的,因为它会让用户离开我的应用程序,而且在平板电脑上更麻烦。
我将如何在应用内进行身份验证,例如在灯箱或模态表单中?
请注意,集成本身发生在服务器端而不是客户端。目前,Dropbox 身份验证页面有一个回调页面,向我的服务器发出身份验证成功的信号,我将其存储在数据库中的用户表中以备将来使用。
注意:赏金评论应为:非常需要代码示例,但不需要。
最佳答案
您的提议是要打败安全模型,所以这应该是不可能的。用户应该能够看到真实页面的 URL 以进行验证。想象一下,当您使用 Paypal 付款时,您可能会在输入重要数据之前检查您是否在 paypal.com 上,对吗?这同样适用于所有其他应用程序。这是一个非常丑陋的流程,但却是当今业界最好的流程。
理想的流程是您将用户重定向到第三方网站或应用程序,用户登录并授权,然后重定向回给您。 native 应用程序具有切换到另一个 native 应用程序的好处,因此流程不那么难看。
可以做你想做的事情的解决方法是一个应用程序询问用户名和密码到第 3 方服务,然后自己在幕后进行身份验证。这可能会阻止用户使用您的应用程序并且非常危险。我不推荐它。
关于javascript - 如何在不打开新窗口的情况下在单页应用程序中进行 Dropbox 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11321361/