首頁 > 後端開發 > C++ > 如何使用 AngularJS 和 ASP.NET Core 實作基於令牌的驗證?

如何使用 AngularJS 和 ASP.NET Core 實作基於令牌的驗證?

Susan Sarandon
發布: 2024-12-26 09:12:10
原創
533 人瀏覽過

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

ASP.NET Core 中基於令牌的身份驗證

場景:

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板