我只有浏览器webapp(无服务器端),我需要使用oauth2向外部服务进行身份验证。
该服务通过“令牌流”进行身份验证,在该令牌流中,该身份验证请求通过重定向回Web应用程序来实现。
在示例用例here中,通过在html主页中运行isAuthorized来检测重定向。
但是这个例子太简单了。在我的情况下,当用户要上传文件时,身份验证会在创建index.html主页面后很长时间进行。
如果再次加载index.html主页面,则该页面将刷新并丢失所有信息,并声明该Web应用程序在身份验证调用之前到达了,对吗?
我的问题是:如何在Web应用中检测重定向响应?
编辑:
菲尔,我暂时不考虑访问令牌问题的存储。
meagar,通过Google云端硬盘,我已成功使用JavaScript客户端[library][2]
。
它“以某种方式”有效,但是我想了解处理重定向响应的原理。
对于Dropbox,我发布了问题here。 答案建议指定一个不同于典型主页/主页的重定向URI,以检测用户是否从应用授权流中回来。
它还建议在“状态”参数中保存一些信息,以指示授权之前用户所在的位置,并恢复用户的操作。
我的问题更为根本:
假定重定向URI与主页/主页不同,并且我可以检测到用户从应用授权流中回来,我仍然不了解“状态”的外观。例如,在授权之前,打开文件并将数据读取到各种变量。 如何将所有这些信息封装在一个状态中?
假设先前的状态已捕获并在重定向响应中返回,那么在解析访问令牌后是否应该重定向回首页/主页? 这不会重新加载页面并重置应用程序吗?
由于我的网络编程经验不足,我的问题可能很基本。 有人可以向我介绍有关如何处理重定向,恢复状态以及授权后恢复应用程序流的说明吗?
谢谢