将访问令牌传递给Web API以代表用户执行调用的最佳实践

时间:2017-08-18 03:30:55

标签: c# asp.net-web-api oauth owin xero-api

免责声明:这是我第一次处理OAuth。

我目前正在将Web API设置为用户(使用移动应用程序)和Xero公共应用程序之间的中间人。

要让用户访问任何Xero数据,他们必须首先使用Xero Public Application对自己进行身份验证。然后在认证过程结束时向用户提供访问令牌和访问令牌秘密。这一切都是通过OAuth 1.1完成的。

此时,移动应用程序具有访问令牌和访问令牌密钥 - 由Xero公共应用程序提供。从这一点开始,用户将永远不会再与Xero公共应用程序通信。

我需要做的是让用户向Web API发送一个POST,其中包含他们的Xero用户名和Xero Access Token(以及可能的Xero Access Token Secret)。 Web API Controller将接收此请求,并向Xero Public Application发送请求以确保其正常工作。

当从Xero公共应用程序收到OK响应时,Web API将通过将用户(使用其Xero用户名)和组织(带有访问令牌+密钥)存储在数据库中来注册用户。 / p>

此时,所有必需的凭据都存储在Web API数据库中,Web API控制器可以代表用户执行请求。这背后的整个推理是,可以设置Web作业,每天一次或两次将Xero数据提取到Web API,用户只能访问这些数据。

我的问题是:

  • 这里有红旗吗?
  • 我是否需要在用户/移动应用程序和Web API之间提供访问令牌?这是给设备还是用户?
  • OWIN可以提供访问令牌,但我不确定如何在移动应用程序< - >之间使用它们。 Web API。

提前致谢。

0 个答案:

没有答案