Jump to content
McKay Development

RezzziRA

Member
  • Posts

    1
  • Joined

  • Last visited

RezzziRA's Achievements

  1. Testing new login system with api (at this time old login system works fine) Attached 2 methods from bot class. I think general problem arises on PollAuthSessionStatus. I never got access_token prop with i think JWT for https://login.steampowered.com/jwt/finalizelogin Maybe someone know what i made wrong Some info in code comments async sendRequest(url, body = {}, method = 'GET', headers = {}, fetchOptions = {}){ let createSteamQueryStringBody = (body) => { if(Object.keys(body).length == 0) return `` let newBody = `` for(let key in body){ if(typeof body[key] == 'object') body[key] = JSON.stringify(body[key]) newBody += `${key}=${encodeURIComponent(body[key])}&` } return `?${newBody}`.slice(1, -1) } let requestOptions = { headers: { 'content-type': 'application/x-www-form-urlencoded; charset=UTF-8' } } if(this.proxy && this.proxy.includes('http')){ requestOptions['agent'] = new httpsProxyAgent(this.proxy) } if(method != 'GET') requestOptions.body = createSteamQueryStringBody(body) requestOptions.method = method requestOptions.headers = Object.assign(requestOptions.headers, headers) requestOptions = {...requestOptions, ...fetchOptions} let response = await fetch(url, requestOptions) return response } async setupSessionNew(){ try { //generating and setup default cookies for session let sessionID = generateSessionID() let sessionIDCookie = `sessionid=${sessionID}` let responseCookies = await this.sendRequest('https://steamcommunity.com/login', {}, 'GET', {cookies: `${sessionIDCookie}`}) let cookies = this.getSetCookieHeaderCookies(responseCookies.headers.raw()['set-cookie']) cookies.push(`timezoneOffset=10800,0`) cookies.push(`Steam_Language=english`) cookies.push(`ActListPageSize=100`) //create default headers let headers = {cookie: cookies.join(';'), "referer": "https://steamcommunity.com/"} //getting rsa let responseRSA = await this.sendRequest(`https://api.steampowered.com/IAuthenticationService/GetPasswordRSAPublicKey/v1/?account_name=${this.login}`, {}, 'GET', {cookie: cookies.join(';'), "referer": "https://steamcommunity.com/login"}) let jsonRSA = await responseRSA.json() let key = new RSA() key.setPublic(jsonRSA.response.publickey_mod, jsonRSA.response.publickey_exp) //begin auth session let json = { device_friendly_name: '', encrypted_password: hex2b64(key.encrypt(this.password)), account_name: this.login, encryption_timestamp: jsonRSA.response.timestamp, platform_type: 'WebBrowser' } let responseAuthBegin = await this.sendRequest(`https://api.steampowered.com/IAuthenticationService/BeginAuthSessionViaCredentials/v1/`, json, 'POST', headers) let jsonAuthBegin = await responseAuthBegin.json() //this is default response for begin //jsonAuthBegin { // response: { // client_id: '1668888137126125xxxx', // request_id: 'xxxxxAVTm7NzQF56pk3q5A==', // interval: 5, // allowed_confirmations: [ { confirmation_type: 3 } ], // steamid: '76561199217xxxxxx' // } //} //updating twofa code json = { client_id: jsonAuthBegin.response.client_id, steamid: this.steamID, code: steamTotp.getAuthCode(this.shared), code_type: 'DeviceCode' } let responseSteamGuard = await this.sendRequest(`https://api.steampowered.com/IAuthenticationService/UpdateAuthSessionWithSteamGuardCode/v1`, json, 'POST', headers) let jsonSteamGuard = await responseSteamGuard.json() //this is default response for update (protobuf response - empty) //jsonSteamGuard { response: {} } //poll auth status by ids json = { client_id: jsonAuthBegin.response.client_id, request_id: jsonAuthBegin.response.request_id } setInterval(async () => { let responsePoll = await this.sendRequest(`https://api.steampowered.com/IAuthenticationService/PollAuthSessionStatus/v1/`, json, 'POST', headers) let jsonPoll = await responsePoll.json() //jsonPoll { response: { had_remote_interaction: false } } //sometimes got {new_client_id, new_challenge_url} //never got response with {refresh_token and access_token} }, 5000) } catch (error) { console.log(error) } }
×
×
  • Create New...