Ejemplo n.º 1
0
        public static RiotAuthToken RefreshLoginToken(RiotAuthOpenIdConfiguration openId, string refreshToken, RegionData regionData)
        {
            var dsid = Guid.NewGuid().ToString("N");

            //The information to Post in the webrequest
            var postString = "client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&" +
                             $"client_assertion={regionData.Rso.Token}&" +
                             "grant_type=refresh_token&" +
                             $"refresh_token={refreshToken}&" +
                             "scope=openid offline_access lol ban profile email phone";
            var result = RiotWebClient.Post(openId.TokenEndpoint, RiotWebClientUserAgents.RsoAuth, "application/x-www-form-urlencoded", "application/json", postString, ("X-Riot-DSID", dsid));

            if (result.Success)
            {
                return(new RiotAuthToken(RiotAuthResult.Success, result.Result, dsid, regionData));
            }

            return(result.Result.Contains("invalid_credentials")
                ? new RiotAuthToken(RiotAuthResult.InvalidCredentials, null, dsid, regionData)
                : new RiotAuthToken(RiotAuthResult.UnknownReason, null, dsid, regionData));
        }