访问需要通过javascript进行身份验证的数

时间:2015-07-15 18:11:50

标签: javascript asp.net asp.net-web-api oauth

我正在构建一个Web应用工具,允许用户使用他们的GitHub帐户执行某些操作(查看他们的私人存储库等)。它构建在ASP .NET MVC5上,使用Octokit库进行GitHub访问。在该工具的0.0版本(learn-how-OAuth-works阶段)中,网站遵循OAuth流程,详见this blog post,其中用户登录GitHub,然后向我提供令牌。我将令牌存储在Session [" OAuthToken"]中,从GitHub加载所需的所有数据,然后使用模型将所有数据提供给我的视图。

既然需要加载的数据量正在增长并且可能开始变得更加动态,我想在将页面提供给用户之后切换此设计以加载数据。工作流程看起来有点像:

  1. 用户未登录GitHub。应用程序为用户提供指向GitHub身份验证页面的链接
  2. 登录后,OAuthToken已保存,用户将重定向回第一页
  3. 现在该用户已登录,提供给用户的网页是带有JavaScript但没有数据的简单HTML
  4. JavaScript(可能是Angular)对服务器(WebApi)进行异步调用,请求各种数据
  5. 服务器使用用户的OAuthToken为所请求的数据调用GitHub API并将其提供回网页
  6. JavaScript呈现数据
  7. 我对此工作流程的理解是,我可以安全地验证用户是否正在对WebApi进行有效的数据调用。服务器有一个OAuthToken可供使用,但我的理解是它不安全地提供给用户在其调用中使用。但是,如果没有它,WebApi端点如何告诉它接收的请求应该使用此特定的OAuthToken。

    该网站没有任何其他形式的登录信息,我很乐意保持这种状态。但即使它确实有自己的登录,我想我仍然会遇到同样的问题。登录用户访问页面,然后需要使用请求中包含的某些信息对页面中的后续JavaScript调用进行身份验证。

    我有什么选择?可以将对WebApi的JavaScript调用连接到MVC用于确定Session [" OAuthToken"]的任何内容,因为该值似乎在后续页面视图中是持久的吗?我可以在Cookie中设置OAuthToken并以这种方式访问​​它吗?如果它有帮助,网络应用程序在任何地方都使用HTTPS,但我也想知道是否有一个没有HTTPS的解决方案。

    感谢您的帮助。

0 个答案:

没有答案