があるとします。実装する ASP.NET Core アプリケーションAngularJS アプリケーションのトークンベースの認証。 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 アプリケーションが保護されたリソースに安全にアクセスできるようになります。
以上がASP.NET Core で AngularJS アプリケーション用にトークンベースの認証を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。