我有Azure Mobile Service和AD设置进行身份验证 .
通过移动应用程序注销并登录完美 .
AD应用程序回复网址是https://test.azure-mobile.net/signin-aad
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
这项工作是完美的 .
但是如果我在LOGOUT之后从authResult复制令牌,我可以使用相同的令牌从邮递员调用API .
Headers :X-ZUMO-AUTH→令牌
我如何验证令牌? Azure移动服务端需要进行哪些设置来验证和阻止此操作?
1 回答
当您在客户端注销时,将从客户端删除身份验证令牌,但不会向服务器传达任何内容以指示此令牌现在无效 . 因此,如果令牌存储在其他地方并重新使用,它将一直有效,直到它过期 .
我不确定这是一个很好的方法 . 您可以重置站点的主密钥,但这会使所有其他令牌无效,因此这不是一个可行的选项 . 您可以在服务器上存储无效令牌列表,并在每个请求中检查它们,但这会为每个请求添加查找 .
这是另一个问题,有类似的答案和其他一些链接:Logout/invalidate a JWT