我正在构建一个Web应用工具,允许用户使用他们的GitHub帐户执行某些操作(查看他们的私人存储库等)。它构建在ASP .NET MVC5上,使用Octokit库进行GitHub访问。在该工具的0.0版本(learn-how-OAuth-works阶段)中,网站遵循OAuth流程,详见this blog post,其中用户登录GitHub,然后向我提供令牌。我将令牌存储在Session [" OAuthToken"]中,从GitHub加载所需的所有数据,然后使用模型将所有数据提供给我的视图。
既然需要加载的数据量正在增长并且可能开始变得更加动态,我想在将页面提供给用户之后切换此设计以加载数据。工作流程看起来有点像:
我对此工作流程的理解是,我可以安全地验证用户是否正在对WebApi进行有效的数据调用。服务器有一个OAuthToken可供使用,但我的理解是它不安全地提供给用户在其调用中使用。但是,如果没有它,WebApi端点如何告诉它接收的请求应该使用此特定的OAuthToken。
该网站没有任何其他形式的登录信息,我很乐意保持这种状态。但即使它确实有自己的登录,我想我仍然会遇到同样的问题。登录用户访问页面,然后需要使用请求中包含的某些信息对页面中的后续JavaScript调用进行身份验证。
我有什么选择?可以将对WebApi的JavaScript调用连接到MVC用于确定Session [" OAuthToken"]的任何内容,因为该值似乎在后续页面视图中是持久的吗?我可以在Cookie中设置OAuthToken并以这种方式访问它吗?如果它有帮助,网络应用程序在任何地方都使用HTTPS,但我也想知道是否有一个没有HTTPS的解决方案。
感谢您的帮助。