ホームページ > バックエンド開発 > C++ > AngularJS と ASP.NET Core を使用してトークンベースの認証を実装するにはどうすればよいですか?

AngularJS と ASP.NET Core を使用してトークンベースの認証を実装するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-26 09:12:10
オリジナル
528 人が閲覧しました

How to Implement Token-Based Authentication with AngularJS and ASP.NET Core?

ASP.NET Core でのトークン ベースの認証

シナリオ:

AngularJS アプリケーションは、次の方法で WebApi からトークンを要求します。ユーザー名とパスワードを提供します。承認が成功すると、WebApi は、後続のリクエストで AngularJS アプリが使用するアクセス トークンを返します。

Configuration:

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート