fusionauth-typescript-client icon indicating copy to clipboard operation
fusionauth-typescript-client copied to clipboard

client.logout("refreshtokien here") dont work

Open IzydorDPS opened this issue 3 years ago • 2 comments

i was forced to replace method above with client.logoutWithRequest(logoutRequest); witch is basicly the same so it dont change anything but its still a bug

problem: when calling client.logout(true, "refreshtokien here") i get exception that api consumes only application/json but api sends plain/text method:

image

exception:

{
  "statusCode": 400,
  "exception": {
    "fieldErrors": {},
    "generalErrors": [
      {
        "code": "[InvalidContentType]",
        "message": "Invalid [Content-Type] HTTP request header value of [text/plain]. Supported values for this request include [application/json]."
      }
    ]
  }
}

IzydorDPS avatar Oct 02 '22 12:10 IzydorDPS

If you omit the Content-Type request header, does it work ok?

I think the issue is in our builder, I think this was a carry over from native JavaScript where the browser doesn't want to make a POST request w/out a content type header. But I don't think we need this in TypeScript.

https://github.com/FusionAuth/fusionauth-client-builder/blob/5ec210211dac37cdb314dd0e7cd132b2165f04af/src/main/client/typescript.client.ftl#L93

robotdan avatar Oct 03 '22 04:10 robotdan

Same issue here. I have done this

const client = new FusionAuthClient(key, url);
const clientBuilder = client.clientBuilder.build(url);
clientBuilder
      .withHeader('Content-Type', 'application/json') // this is the override
      .withUri('/api/logout')
      .withParameter('global', true)
      .withParameter('refreshToken', refreshToken)
      .withMethod('POST')
      .go()

impact-erik avatar Oct 17 '22 15:10 impact-erik