var code_verifier = EncodeBase64(RandomBytes(32))
.TrimEnd('=')
.Replace('+', '-')
.Replace('/', '_');daV558BbhbH5GGsK0X8ukxXbBtI-NzpuvBhkmKxMXPwvar code_challenge = EncodeBase64(sha256.ComputeHash(UTF8.GetBytes(code_verifier)))
.TrimEnd('=')
.Replace('+', '-')
.Replace('/', '_');BkUvwmR7GX1I0ag0RQXC2nosjt6EwIkmG8YF4-jhxU8https://www.challengermode.com/oauth/authorize?client_id=<application-id>&redirect_uri=<redirect_uri>&response_type=code&code_challenge=<code_challenge>&code_challenge_method=S256gameprotocol://cm_oauth_callback?code=<...>curl --location --request POST 'https://www.challengermode.com/oauth/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'grant_type=authorization_code'
--data-urlencode 'code_verifier=<code_verifier>'
--data-urlencode 'code=<parsed_auth_code>'
--data-urlencode 'client_id=<application-id>'
--data-urlencode 'redirect_uri=<redirect-uri>'curl --location --request POST 'https://www.challengermode.com/oauth/device'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'client_id=f7235d5b-b7b0-4c1d-f77a-08dac5e20ff2'
--data-urlencode 'scope=offline_access'{
"device_code": "NUOHyXgAoK1vdY_IhHzlZNCQlcrB1we0ZsMnw0ITI7Y",
"expires_in": 599,
"user_code": "1771-1157-4953",
"verification_uri": "https://www.challengermode.com/device",
"verification_uri_complete": "https://www.challengermode.com/device?user_code=1771-1157-4953"
}curl --location --request POST 'https://www.challengermode.com/oauth/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'device_code=luYSmKoIUKDtkqm6ZQubkXz8Ii2CiqwlGIhS_ypsDEA'
--data-urlencode 'client_id=<application-id>'
--data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:device_code'https://www.challengermode.com/oauth/authorize?client_id=<application-id>&redirect_uri=<redirect-uri>&response_type=code&scope=offline_access&code_challenge=<code-challenge>&code_challenge_method=S256https://www.challengermode.com/oauth/authorize?client_id=<application-id>&redirect_uri=<redirect-uri>&response_type=code&scope=offline_access&code_challenge=<code-challenge>&code_challenge_method=S256curl --location --request POST 'https://www.challengermode.com/oauth/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--data-urlencode 'grant_type=refresh_token'
--data-urlencode 'client_id=<client-id>'
--data-urlencode 'refresh_token=<refresh-token>'curl --location --request POST 'https://www.challengermode.com/oauth/token'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'Authorization: Basic <client-secret>'
--data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:assertion'
--data-urlencode 'assertion=<assertion>'
--data-urlencode 'scope=<scopes>''