Complete a sign-in in the launcher
POST
/v1/auth/launcher/token
const url = 'https://api.gampeon.com/v1/auth/launcher/token';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"code":"example","verifier":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.gampeon.com/v1/auth/launcher/token \ --header 'Content-Type: application/json' \ --data '{ "code": "example", "verifier": "example" }'Exchanges the one-time code from gampeon://auth and the verifier for a session of its own (30 days). The code can be used once; a wrong verifier uses it up as well.
Rate limit: 30 per 15 minutes per IP.
Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
code
required
One-time code from the portal
string
verifier
required
Random secret of 43 to 128 characters A-Z a-z 0-9 - . _ ~ that the launcher created for this sign-in
string
Example generated
{ "code": "example", "verifier": "example"}Responses
Section titled “Responses”Session
Media typeapplication/json
object
token
required
Bearer token for the Authorization header
string
expiresAt
required
Unix time in milliseconds
integer format: int64
Example generated
{ "token": "example", "expiresAt": 1}Error codes: invalid_field, invalid_code
Media typeapplication/json
object
error
required
Machine-readable error code, for example not_found or rate_limited.
string
message
Human-readable detail. Only present for some errors.
string
Example generated
{ "error": "example", "message": "example"}Limit: 30 per 15 minutes per IP. Error codes: rate_limited
Media typeapplication/json
object
error
required
Machine-readable error code, for example not_found or rate_limited.
string
message
Human-readable detail. Only present for some errors.
string
Example generated
{ "error": "example", "message": "example"}