How To Pass Username and Password in the Body for Wordpress JWT Auth API

Viewed 494

I have Wordpress and JWT Auth installed and I want to validate a username and password.

I simply want to pass the username and password through the JWT Token API using my C# code.

Here's the API link that's working in Postman:

https://xxxx/wp-json/jwt-auth/v1/token

I can only pass the username and password in the "Body" "Form-Data" fields with the key values "username" and "password" because parameters don't work with JWTAuth.

How do I pass these values as a "Body" "Form-Data" value using C#?

Here's my code:

string JWTAPI = "https://xxxx/wp-json/jwt-auth/v1/token";

var client = new HttpClient();
var uri = JWTAPI;

var jsonContent = "{ \"username\": \"test\", \"password\": \"test\"}";

string json = JsonConvert.SerializeObject(jsonContent);

StringContent content = new StringContent(json, Encoding.UTF8, "application/json");

var response_status = await client.PostAsync(uri, content);

var response_result = await response_status.Content.ReadAsStringAsync();
2 Answers
 TokenRequest Token;

 public async Task TakeToken()
            {
                client = new HttpClient();
                var values = new Dictionary<string, string>
                {
                { "username", "root" },
                { "password", "1111" }
                };
                var content = new FormUrlEncodedContent(values);
                var response = await client.PostAsync($"{BaseUrl}/wp-json/jwt-auth/v1/token", content);
    
                var responseString = await response.Content.ReadAsStringAsync();
    
                Token = Newtonsoft.Json.JsonConvert.DeserializeObject<TokenRequest>(responseString);
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Token.token);
            }

    public class TokenRequest
        {
            public string token;
            public string user_email;
            public string user_nicename;
            public string user_display_name;
        }

Never mind. I got it to work!

Just needed to remove:

string json = JsonConvert.SerializeObject(jsonContent);

Related