시나리오:
AngularJS 애플리케이션은 다음과 같이 WebApi에서 토큰을 요청합니다. 사용자 이름과 비밀번호를 제공합니다. 인증이 성공하면 WebApi는 후속 요청에서 AngularJS 앱이 사용할 액세스 토큰을 반환합니다.
구성:
Startup.cs:
인증 구성 서비스:
services.AddTransient(_ => new JwtSignInHandler(symmetricKey)); services.AddAuthentication(options => { options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(options => { options.TokenValidationParameters.ValidateIssuerSigningKey = true; options.TokenValidationParameters.IssuerSigningKey = symmetricKey; options.TokenValidationParameters.ValidAudience = JwtSignInHandler.TokenAudience; options.TokenValidationParameters.ValidIssuer = JwtSignInHandler.TokenIssuer; });
미들웨어:
app.UseAuthentication();
승인 정책(선택 사항):
services.AddAuthorization(auth => { auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder() .AddAuthenticationTypes(JwtBearerDefaults.AuthenticationType) .RequireAuthenticatedUser().Build()); });
토큰 세대:
public class JwtSignInHandler { public string BuildJwt(ClaimsPrincipal principal) { // Create credentials and token var token = new JwtSecurityToken( issuer: TokenIssuer, audience: TokenAudience, claims: principal.Claims, expires: DateTime.Now.AddMinutes(20), signingCredentials: creds ); return new JwtSecurityTokenHandler().WriteToken(token); } } [HttpPost] public string AnonymousSignIn([FromServices] JwtSignInHandler tokenFactory) { // Create claims principal var principal = new ClaimsPrincipal(new[] { new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, "Demo User") }) }); return tokenFactory.BuildJwt(principal); }
위 내용은 AngularJS 및 ASP.NET Core를 사용하여 토큰 기반 인증을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!