我刚接触JWT身份验证,我已经使用下面的教程为令牌身份验证配置了我的ASP.NET Core3API:
我已经向控制器添加了[Authorize]属性,使用Postman我可以登录并获取令牌,并通过Postman使用令牌从控制器检索数据-所有工作都与预期的一样。
我的问题是,当我通过Xamarin应用程序使用C# HttpClient登录,然后使用发回的令牌时,我通过Postman或HttpClient访问控制器时出现401错误。
我使用的代码如下:
var client = new HttpClient();
var model = new JwtLoginModel()
{
Email = email,
Password = password,
RememberMe = false
};
var json = JsonConvert.SerializeObject(model);
HttpContent httpContent = new StringContent(json);
var response = await client.PostAsync(Constants.BaseApiAddress + "api/Login", new StringContent(json, Encoding.UTF8, "application/json"));
var content = await response.Content.ReadAsStringAsync();
JObject jwtDynamic = JsonConvert.DeserializeObject<dynamic>(content);
var accessToken = jwtDynamic.Value<string>("token");使用通过Postman (和HttpClient)返回的accessToken,两者都返回401错误。
有没有人能建议我哪里做错了?
发布于 2020-05-14 02:21:21
感谢所有人的帮助
最后,我决定使用Identity Server4实现会更容易一些,它可以完美地工作
https://stackoverflow.com/questions/61564891
复制相似问题