我有一个奇怪的场景:
我正在尝试实现此处概述的刷新令牌: http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/
我已经按照博客文章的说法开始工作,但现在我已经为自定义云上下文更改了数据库上下文,因此所有安全表都是Azure存储表。 AuthRepository最终与博客相同,基本上OAuth的内容有90%的相同代码(对上下文的调用略有不同)。
当我将webapi指向我的本地存储模拟器时,我可以登录并创建刷新令牌,我可以使用刷新令牌获取另一个访问令牌。一切正常。但是,当我将webapi指向实际的Azure存储时,我无法获得新的令牌,我可以正常登录并在表存储中创建刷新令牌。它命中
SimpleRefreshTokenProvider.ReceiveAsync(AuthenticationTokenReceiveContext context)
并找到现有的refreshToken,反序列化票证
context.DeserializeTicket(refreshToken.ProtectedTicket);
然后从表中删除refreshToken,但我从webapi令牌端点(' / token')得到的唯一响应是{"错误":" invalid_grant& #34;}
我真的不知道从哪里开始寻找这个错误,因为没有异常抛出(我已经单步执行了所有代码)并且永远不会调用SimpleAuthorizationServerProvider.GrantRefreshToken(OAuthGrantRefreshTokenContext context)
我有:
注意:请原谅我缺乏代码,欢迎包含任何内容的方向。我准备好编辑了!