C# azure移动服务active directory身份验证X-ZUMO-AUTH令牌在注销后在邮递员中有效

C# azure移动服务active directory身份验证X-ZUMO-AUTH令牌在注销后在邮递员中有效,c#,azure-mobile-services,logout,azure-active-directory,postman,C#,Azure Mobile Services,Logout,Azure Active Directory,Postman,我已经为认证设置了Azure移动服务和广告 通过移动应用程序注销和登录可以完美地工作 广告应用程序回复url为 这项工作是完美的 但如果我在注销后从authResult复制令牌,我可以使用相同的令牌从postman调用API 标题:X-ZUMO-AUTH→ 代币 如何验证令牌? Azure Mobile Service Side验证和阻止此操作所需的任何设置?当您注销客户端时,将从客户端删除身份验证令牌,但不会向服务器发送任何信息以指示此令牌现在无效。因此,如果令牌存储在其他地方并重新使用,它在

我已经为认证设置了Azure移动服务和广告

通过移动应用程序注销和登录可以完美地工作

广告应用程序回复url为

这项工作是完美的

但如果我在注销后从authResult复制令牌,我可以使用相同的令牌从postman调用API

标题:X-ZUMO-AUTH→ 代币

如何验证令牌?
Azure Mobile Service Side验证和阻止此操作所需的任何设置?

当您注销客户端时,将从客户端删除身份验证令牌,但不会向服务器发送任何信息以指示此令牌现在无效。因此,如果令牌存储在其他地方并重新使用,它在过期之前仍然有效

我不确定有没有好办法。您可以重置站点的主密钥,但这会使所有其他令牌无效,因此这不是一个切实可行的选项。您可以在服务器上存储一个无效令牌列表,并在每个请求中检查它们,但这会在每个请求中添加一个查找


这里还有另一个问题,有类似的答案和几个其他链接:

如何检查服务器上的无效令牌?您需要创建一个ApiController,它接受令牌并将其添加到某种存储(数据库、Azure表等)中。当客户端注销时,您还需要将令牌发送到此新控制器,以便将其记录为无效。然后,对于每个传入的请求,您将检查令牌是否存在。如果是,则该令牌无效。您可以在过期后删除它们。请参见此答案中的#2:。对“invalidatejwt”的其他搜索将提供一些其他方法。
client = new MobileServiceClient (applicationURL, applicationKey);

var authResult = await client.LoginAsync(this, MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory);

var data = await client.InvokeApiAsync("testAPI", HttpMethod.Get, null); //Works

client.Logout(); // LOGOUT

var data = await client.InvokeApiAsync("testAPI", HttpMethod.Get, null); //Unauthorized Error at mobile side. Request not going to API