我们有一个在Asp.Net和Owin(.Net Framework 4.6)下运行的webApi。 几个本地前端客户端(iO,android等)正在使用该api。 该API当前使用带有登录令牌和cookie身份验证的Microsoft登录名。这有效,访问令牌随重定向的请求直接返回到客户端中的webView,我们能够使用Bearer令牌和另一个身份验证cookie访问我们的API。 现在,我们的任务是在该API中使用LinkedIn身份验证提供程序实现身份验证。为了明确起见:我们需要一个 OWIN 实现(没有AspNet.Core)。
我们可以使用此LinkedIn auth provider从webAPI的LinkedIn中获取访问令牌。因此,我们在User.Identity.Claims中看到了令牌。我们也可以再次将其退还给客户。是的,这可能不是一个好主意,但是似乎不可能直接在浏览器/ webView中获取令牌,因为response_type = code是linkedIn身份验证所必需的。使用response_type = token可以用于Microsoft身份验证。
无论如何,尽管我们已经检索了access_token,但最终Webview仍被重定向到以下URL: http://10.0.2.2:8108/signin-linkedin? error = unsupported_response_type
请忽略我们暂时不使用https。主机仅用于测试,但重要的部分是附加的错误。
为什么会出现此错误?谁调用此请求,为什么尽管我们已经有了令牌,但为什么仍然出现该错误?
另一个信息是,我们现在在客户端中拥有的访问令牌无法用于针对webAPI的身份验证。因此,我们返回了401未经授权。
也许我应该明确提到,我们也在api中使用cookie身份验证,当我们在webView中接收cookie时,它似乎可以正常工作,并且仅在正确的用户上下文中,我们才能调用受cookie身份验证保护的方法。
我们非常感谢您的帮助!
答案 0 :(得分:0)
使用HTTPS后,出现了unsupported_response_type错误。