我使用WebAPI获取数据的MVC 4 C#应用程序。我使用标准的Visual Studio MVC模板以身份授权启动项目。
现在我已经确保了对WebAPI的ajax调用,我需要在sessionStorage或类似的东西中存储Identity OAuth令牌。
我的问题是:如何从控制器获取令牌并将其存储在浏览器端?
在VS的SPA模板之后我写了这样的东西:
var fragment = common.getFragment();
if (fragment.access_token) {
window.location.hash = fragment.state || '';
sessionStorage.setItem("access-token", fragment.access_token);
} else {
window.location = "/Admin/Authorize?client_id=web&response_type=token&state=" + encodeURIComponent(window.location.hash);
}
这样我强制浏览器通过Javascript从URL重新加载页面获取令牌,然后从URL中删除它。但是这次刷新带来了redirectUrl
模式和其他东西的几个问题。
这是唯一的方法还是最佳做法?