AngularJS에 대한 토큰 기반 인증을 구현하려는 ASP.NET Core 애플리케이션 애플리케이션. AngularJS 애플리케이션은 사용자 이름과 비밀번호를 전달하는 특정 URL을 요청합니다. Web API는 사용자에게 권한을 부여하고 AngularJS 앱이 후속 요청에 사용할 액세스 토큰을 반환합니다.
토큰 기반으로 ASP.NET Core Web API 애플리케이션을 구성하려면 인증:
토큰 대상 및 발급자에 대한 상수를 만듭니다.
const string TokenAudience = "Myself"; const string TokenIssuer = "MyProject";
Startup.cs 파일에서 ConfigureServices 메서드에 다음을 추가합니다.
var keySecret = authenticationConfiguration["JwtSigningKey"]; var symmetricKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keySecret)); 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; });
Startup.cs 파일에서 사용자 정보가 필요한 미들웨어 앞에 다음 줄을 추가합니다.
app.UseAuthentication();
JWT 토큰 생성을 처리할 클래스를 생성합니다:
class JwtSignInHandler { public const string TokenAudience = "Myself"; public const string TokenIssuer = "MyProject"; private readonly SymmetricSecurityKey key; public JwtSignInHandler(SymmetricSecurityKey symmetricKey) { this.key = symmetricKey; } public string BuildJwt(ClaimsPrincipal principal) { var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: TokenIssuer, audience: TokenAudience, claims: principal.Claims, expires: DateTime.Now.AddMinutes(20), signingCredentials: creds ); return new JwtSecurityTokenHandler().WriteToken(token); } }
토큰을 반환하려는 컨트롤러 작업에서 BuildJwt 메서드를 호출합니다.
[HttpPost] public string AnonymousSignIn([FromServices] JwtSignInHandler tokenFactory) { var principal = new System.Security.Claims.ClaimsPrincipal(new[] { new System.Security.Claims.ClaimsIdentity(new[] { new System.Security.Claims.Claim(System.Security.Claims.ClaimTypes.Name, "Demo User") }) }); return tokenFactory.BuildJwt(principal); }
이 단계를 통해 ASP.NET Core Web API 애플리케이션은 토큰 기반 인증을 사용하도록 구성되므로 AngularJS 애플리케이션이 보호된 리소스에 안전하게 액세스할 수 있습니다.
위 내용은 AngularJS 애플리케이션용 ASP.NET Core에서 토큰 기반 인증을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!