2017-07-06 61 views
0

我有一个API客户端连接到第三方API服务。全局存储访问令牌,到期后重新加载它一个线程安全的方式

问题是我首先要进行身份验证,然后我得到我使用到期令牌。

如何在我的ASP.NET MVC应用程序中使用我的API,并跟踪令牌是否过期我必须重新进行身份验证,然后使API调用失败(当令牌过期时)。

List<User> users = api.getUsers(); 

如果API客户端令牌到期,它必须重新进行身份验证,然后进行调用。有没有办法在重新验证之后重新调用api.getUsers,因为调用会失败并显示“过期令牌”。

想法?

回答

0

如果有服务电话,允许验证令牌,有你的认证对象检查,吸附剂中的令牌和验证任何时候只需无效。

如果没有,我会用一个try/catch和验证,并重复要求处理过期的标记例外。重复或者需要是catch中的独立代码块,或者需要一个对象来检查最后一次调用authenticate并在n次尝试后抛出异常。

我敢肯定还有其他几种方法,这些都是什么,立刻浮现在脑海中。

+0

问题是我不想在每个api调用方法中重复这一点,试图想到一个模式在一个地方做到这一点。 –

+0

这些服务需要一个令牌,所以使用getToken方法来检查令牌是否有效并返回一个有效的令牌,您将拥有一个调用身份验证的方法。它可以扩展为带参数来执行此操作,以处理需要令牌的所有代码。 –