我知道OAuth的概念是什么:用户使用授权类型,用户名和密码向服务器发送请求,在对服务器进行一些检查后,用户会收到访问令牌。 我无法理解的是为什么我应该这样做:
ClaimsIdentity oAuthIdentity = await _userManager.CreateIdentityAsync(user,
context.Options.AuthenticationType);
var ticket = new AuthenticationTicket(oAuthIdentity, GenerareProperties(user));
context.Validated(ticket);
CreateIdentityAsync
返回什么?什么是AuthenticationTicket
? context.Validated
做了什么?
另外,如果我oAuthIdentity
,为什么还要使用cookiesIdentity
?最后,生成访问令牌在哪里?
我搜索过但无法找到解释此内容的网站。
答案 0 :(得分:1)
CreateIdentityAsync
将返回在运行上下文的ClaimsPrincipal中使用的ClaimsIdentity,它将在...中进一步抽象化。
为方便起见,AuthenticationTicket
只是传入的内容的包装。
context.Validated
会将故障单中的信息添加到当前主体,并允许OWIN管道继续而不是返回401。
cookiesIdentity
的原因是允许从模板中的MVC页面进行身份验证。它确实不用于WebApi。