0

OAuthAuthorizationServerProviderMicrosoft Owin Security から使用しています。コードを使用しています。

 var oAuthAuthorizationServerOptions = new OAuthAuthorizationServerOptions()
        {
            TokenEndpointPath = new Microsoft.Owin.PathString("/token"), 
            AccessTokenExpireTimeSpan = TimeSpan.FromMinutes(5),
            AllowInsecureHttp = true,
            Provider = new CustomOAuthProvider()
        };

CustomOAuthProvider、

  public class CustomOAuthProvider : OAuthAuthorizationServerProvider
{
    public override Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
    {
        var lstClients = ClientService.GetClients();

        if (lstClients.Count <= 0) return base.ValidateClientAuthentication(context);

        context.TryGetFormCredentials(out var clientId, out var clientSecret);

        if (lstClients.Count(c => c.ClientId == clientId) > 0
            && lstClients.Count(c => c.ClientPassword == clientSecret) > 0)
        {
            context.Validated(clientId);
        }

        return base.ValidateClientAuthentication(context);
    }

    public override Task GrantClientCredentials(OAuthGrantClientCredentialsContext context)
    {
        var claimsIdentity = new ClaimsIdentity(context.Options.AuthenticationType);
        claimsIdentity.AddClaim(new Claim(ClaimTypes.Name, context.ClientId));
        var props = new AuthenticationProperties(new Dictionary<string, string>
        {
            { "client_id", context.ClientId },
            { "scope", string.Join(" ",context.Scope) }
        });
        var ticket = new AuthenticationTicket(claimsIdentity, props);
        context.Validated(ticket);
        return base.GrantClientCredentials(context);
    }
}

私はここで を追加しようとしてscopeいますが、これは追加する正しい方法ではないようです。

  • jwt.IO無効な署名エラーが表示されます。
  • calebb.net、それは言っています-JWTには3つのセグメントが必要です

ここで何が問題なのですか?提案してください。

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1