在仅浏览器的Webapp中管理安全身份验证

时间:2019-03-24 01:44:52

标签: javascript

我只有浏览器webapp(无服务器端),我需要使用oauth2向外部服务进行身份验证。

该服务通过“令牌流”进行身份验证,在该令牌流中,该身份验证请求通过重定向回Web应用程序来实现。

在示例用例here中,通过在html主页中运行isAuthorized来检测重定向。

但是这个例子太简单了。在我的情况下,当用户要上传文件时,身份验证会在创建index.html主页面后很长时间进行。

如果再次加载index.html主页面,则该页面将刷新并丢失所有信息,并声明该Web应用程序在身份验证调用之前到达了,对吗?

我的问题是:如何在Web应用中检测重定向响应?


编辑:

菲尔,我暂时不考虑访问令牌问题的存储。

meagar,通过Google云端硬盘,我已成功使用JavaScript客户端[library][2]

它“以某种方式”有效,但是我想了解处理重定向响应的原理。

对于Dropbox,我发布了问题here。 答案建议指定一个不同于典型主页/主页的重定向URI,以检测用户是否从应用授权流中回来。

它还建议在“状态”参数中保存一些信息,以指示授权之前用户所在的位置,并恢复用户的操作。

我的问题更为根本:

  • 假定重定向URI与主页/主页不同,并且我可以检测到用户从应用授权流中回来,我仍然不了解“状态”的外观。例如,在授权之前,打开文件并将数据读取到各种变量。 如何将所有这些信息封装在一个状态中?

  • 假设先前的状态已捕获并在重定向响应中返回,那么在解析访问令牌后是否应该重定向回首页/主页? 这不会重新加载页面并重置应用程序吗?

由于我的网络编程经验不足,我的问题可能很基本。 有人可以向我介绍有关如何处理重定向,恢复状态以及授权后恢复应用程序流的说明吗?

谢谢

0 个答案:

没有答案