Ejemplo n.º 1
0
        protected void identifierBox_LoggedIn(object sender, OpenIdEventArgs e)
        {
            this.RegisterAsyncTask(
                new PageAsyncTask(
                    async ct => {
                State.FetchResponse = e.Response.GetExtension <FetchResponse>();

                var serviceDescription = new ServiceProviderDescription {
                    TokenRequestEndpoint = new Uri(e.Response.Provider.Uri, "/access_token.ashx"),
                };
                var consumer                    = CreateConsumer();
                consumer.ServiceProvider        = serviceDescription;
                AccessTokenResponse accessToken = await consumer.ProcessUserAuthorizationAsync(e.Response);
                if (accessToken != null)
                {
                    this.MultiView1.SetActiveView(this.AuthorizationGiven);

                    // At this point, the access token would be somehow associated with the user
                    // account at the RP.
                    ////Database.Associate(e.Response.ClaimedIdentifier, accessToken.AccessToken);
                }
                else
                {
                    this.MultiView1.SetActiveView(this.AuthorizationDenied);
                }

                // Avoid the redirect
                e.Cancel = true;
            }));
        }
Ejemplo n.º 2
0
 // Token: 0x060054E8 RID: 21736 RVA: 0x001D47F8 File Offset: 0x001D2BF8
 private void OnAccessTokenCallback(bool success, AccessTokenResponse response)
 {
     if (success)
     {
         string text = "OnAccessTokenCallback - succeeded";
         text = text + "\n    UserId : " + response.UserId;
         text = text + "\n    ScreenName : " + response.ScreenName;
         text = text + "\n    Token : " + response.Token;
         text = text + "\n    TokenSecret : " + response.TokenSecret;
         MonoBehaviour.print(text);
         Tweeter.Instance.accessTokenResponse = response;
         PlayerPrefs.SetString("TwitterUserID", response.UserId);
         PlayerPrefs.SetString("TwitterUserScreenName", response.ScreenName);
         PlayerPrefs.SetString("TwitterUserToken", response.Token);
         PlayerPrefs.SetString("TwitterUserTokenSecret", response.TokenSecret);
         this.connectButton.gameObject.SetActive(false);
         this.disconnectButton.gameObject.SetActive(true);
         this.inputField.gameObject.SetActive(false);
         this.statusText.text = response.ScreenName;
     }
     else
     {
         MonoBehaviour.print("OnAccessTokenCallback - failed.");
         this.connectButton.gameObject.SetActive(true);
         this.disconnectButton.gameObject.SetActive(false);
         this.inputField.text = string.Empty;
         this.inputField.gameObject.SetActive(false);
         this.statusText.text = "Bad Pin";
     }
 }
Ejemplo n.º 3
0
    void Start()
    {
        if (!File.Exists(FileName))
        {
            return;
        }

        // 読込
        string config = File.ReadAllText(FileName);

        config = AESCryption.Decrypt(config);
        string[] token = config.Split(',');

        Access = new AccessTokenResponse
        {
            Token       = token[0],
            TokenSecret = token[1],
            UserId      = token[2],
            ScreenName  = token[3]
        };

        // 認証済
        Text.text = Ready;
        Input.placeholder.GetComponent <Text>().text = PlaceholderReady;
    }
        /// <summary>
        /// This method will get the BlizzardAccess token using my credentials.
        /// </summary>
        /// <returns></returns>
        public static async Task GetBlizzardAccessToken()
        {
            // Get my blizzard token from environmentvariable
            string clientSecret = Environment.GetEnvironmentVariable("BLIZZARDTOKEN");

            // Create our client
            using (HttpClient client = new HttpClient())
            {
                // Authorization
                string auth = Convert.ToBase64String(Encoding.ASCII.GetBytes($"4329a43854634303a426830ceabb767d:{clientSecret}"));

                // Headers
                client.DefaultRequestHeaders.Add("cache-control", "no-cache");
                client.DefaultRequestHeaders.Add("Authorization", $"Basic {auth}");

                // Content
                HttpContent hc = new StringContent("grant_type=client_credentials", Encoding.UTF8, "application/x-www-form-urlencoded");

                // Request our data and record response
                HttpResponseMessage response = await client.PostAsync("https://eu.battle.net/oauth/token", hc);

                if (response.IsSuccessStatusCode)
                {
                    // Deserialize the token
                    AccessTokenResponse tokenResponse = await response.Content.ReadAsAsync <AccessTokenResponse>();

                    // Store Token
                    BlizzAccessToken = tokenResponse.AccessToken;
                }
            }
        }
Ejemplo n.º 5
0
        public static AccessTokenResponse postAccessTokenFromAuthCode()
        {
            AccessTokenResponse result = null;

            try
            {
                configDictionary = GetConfiguration();
                configDictionary["authenticationType"] = "Mutual_Auth";
                var clientConfig = new CyberSource.Client.Configuration(merchConfigDictObj: configDictionary);

                var requestObj = new CreateAccessTokenRequest(
                    Code: code,
                    GrantType: grantType,
                    ClientId: configDictionary["clientId"],
                    ClientSecret: configDictionary["clientSecret"]
                    );

                var apiInstance = new OAuthApi(clientConfig);
                result = apiInstance.PostAccessTokenRequest(requestObj);
                Console.WriteLine(result);
                return(result);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception on calling the API : " + e.Message);
                return(null);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Check if authentication succeeded after user is redirected back from the service provider.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>
        /// An instance of <see cref="AuthenticationResult" /> containing authentication result.
        /// </returns>
        public virtual async Task <AuthenticationResult> VerifyAuthenticationAsync(HttpContextBase context, CancellationToken cancellationToken = default(CancellationToken))
        {
            AccessTokenResponse response = await this.WebWorker.ProcessUserAuthorizationAsync(context, cancellationToken);

            if (response == null)
            {
                return(AuthenticationResult.Failed);
            }

            AuthenticationResult result = await this.VerifyAuthenticationCoreAsync(response, cancellationToken);

            if (result.IsSuccessful && result.ExtraData != null)
            {
                // add the access token to the user data dictionary just in case page developers want to use it
                var wrapExtraData = new NameValueCollection(result.ExtraData);
                wrapExtraData["accesstoken"]       = response.AccessToken.Token;
                wrapExtraData["accesstokensecret"] = response.AccessToken.Secret;

                AuthenticationResult wrapResult = new AuthenticationResult(
                    result.IsSuccessful,
                    result.Provider,
                    result.ProviderUserId,
                    result.UserName,
                    wrapExtraData);

                result = wrapResult;
            }

            return(result);
        }
        // NOTE: this is ultimately the method that gets called by other controllers to ensure user has authorized the app
        // STATUS [ June 8, 2019 ] : this works
        // STEP 3
        /// <summary>
        ///     Retrieve response from Yahoo.
        ///     Create a new instance of AccessTokenResponse from yahoo response
        /// </summary>
        /// <returns> A new AccessTokenResponse that includes: AccessToken, TokenType, ExpiresIn, RefreshToken, XOAuthYahooGuid</returns>
        public AccessTokenResponse GetYahooAccessTokenResponse()
        {
            // _helpers.StartMethod();
            JObject responseToJson;

            bool userHasRefreshToken = CheckIfUserHasExistingRefreshToken();

            // userHasRefreshToken = false;
            Console.WriteLine($"User has refresh token?: {userHasRefreshToken}");

            if (!userHasRefreshToken)
            {
                responseToJson = CreateYahooAccessTokenResponseJObject();
                AccessTokenResponse finalAccessTokenResponse = GenerateYahooAccessTokenResponse(responseToJson);
                _helpers.Dig(finalAccessTokenResponse);
                return(finalAccessTokenResponse);
            }

            if (userHasRefreshToken)
            {
                responseToJson = ExchangeRefreshTokenForNewAccessTokenJObject();
                AccessTokenResponse finalAccessTokenResponse = GenerateYahooAccessTokenResponse(responseToJson);
                return(finalAccessTokenResponse);
            }

            else
            {
                Console.WriteLine("ERROR IN: YahooAuthController.GetYahooAccessTokenResponse()");
                return(null);
            }
        }
Ejemplo n.º 8
0
 public void UpsertCustomer(AccessTokenResponse response)
 {
     using (var uow = GetUnitOfWork())
     {
         var customer =
             uow.Repository <ZY_Customer>()
             .Query()
             .Filter(x => x.OpenId == response.openid)
             .Get()
             .FirstOrDefault();
         if (customer == null)
         {
             customer = new ZY_Customer
             {
                 OpenId   = response.openid,
                 UserName = "",
                 TokenId  = response.access_token
             };
             uow.Repository <ZY_Customer>().Insert(customer);
         }
         else
         {
             customer.TokenId = response.access_token;
             uow.Repository <ZY_Customer>().Update(customer);
         }
         uow.Save();
         //todo load name
     }
 }
Ejemplo n.º 9
0
        public async Task <string> GetReadAccessTokenAsync()
        {
            var readAccessUrl = GetReadAccessUrl();
            AccessTokenResponse accessToken = await _vimeoClient.GetAccessTokenAsync(readAccessUrl, _vimeoCredential?.RedirectionUrl);

            return(accessToken.AccessToken);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// Generate a JWT Token Response Object for specified User Identity
        /// </summary>
        /// <returns>Response Object containing JWT Token and Expiry Time</returns>
        public async Task <AccessTokenResponse> GenerateJWTokenResponseAsync(ApplicationUser user)
        {
            // Set Token Timeouts
            var now            = DateTime.UtcNow;
            var dateTimeOffset = new DateTimeOffset(now);
            var unixNow        = dateTimeOffset.ToUnixTimeSeconds().ToString();

            // Get the Users Claims / Roles
            List <Claim> claims = new List <Claim>
            {
                new Claim(JwtRegisteredClaimNames.NameId, user.Id.ToString()),
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()),
                new Claim(JwtRegisteredClaimNames.Iat, unixNow, ClaimValueTypes.Integer64),
                // new Claim(ClaimTypes.Role, "TestRole"),
            };

            // Add Roles to Claims
            var roles = await _userService.GetRolesForUserAsync(user);

            foreach (var role in roles)
            {
                claims.Add(new Claim(ClaimTypes.Role, role));
            }

            var response = new AccessTokenResponse
            {
                AccessToken = GetToken(now, claims),
                ExpiresIn   = (int)_appSettings.JWTConfiguration.Expiration,
                Id          = user.Id,
                Name        = user.Email
            };

            // Serialize and return the response
            return(response);
        }
Ejemplo n.º 11
0
        public async Task <string> GetFullAccessTokenAsync()
        {
            var fullAccessUrl = GetFullAccessUrl();
            AccessTokenResponse accessToken = await _vimeoClient.GetAccessTokenAsync("thfthfgh", _vimeoCredential?.RedirectionUrl);

            return(accessToken.AccessToken);
        }
Ejemplo n.º 12
0
        private AccessTokenResponse AuthenticateByUsernameAndPassword(UserAuthentication userAuthen)
        {
            var user = repository.GetUserByUsername(userAuthen.Username);
            AccessTokenResponse token = null;

            UserAuthenticationValidation validation = new UserAuthenticationValidation();
            var validationResult = validation.Validate(userAuthen);

            if (!validationResult.IsValid || user == null)
            {
                throw new BaseException(ErrorMessage.CREDENTIALS_NOT_MATCH);
            }

            var result = PasswordManipulation.VerifyPasswordHash(userAuthen.Password,
                                                                 user.PasswordHash, user.PasswordSalt);

            if (user != null && result)
            {
                token = CreateToken(user);
            }
            else
            {
                throw new BaseException(ErrorMessage.CREDENTIALS_NOT_MATCH);
            }

            return(token);
        }
Ejemplo n.º 13
0
        // privates

        private async Task <AccessTokenResponse> GetAccessTokenAsync(HttpClient client)
        {
            /*
             *** If success, returns something as follows:
             ***{
             *** "access_token": "AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAL0Tx4aDDzEy32ulnOq3LdwAAAAACAAAAAAADZgAAwAAAABAAAAANbKP3adQpekCa-oSGJn8ZAAAAAASAAACgAAAAEAAAAH3Rzt0q4gfIsP4XhjB7cScIAQAAmj0CKW5XuJx2nadjiZcFRYLZPbF3NRUZnuc5C0-BQS4iJ04LQgErgv-bAYpO8WuDLW9RRUjFWAEpvWSY8ohmAPojWqNWrHcwe3bMeXLK7lBT12YJo0EgbeWKRgKer-yhctn3HybHuf43fGrej7RgzTca_0aKXQRV38uIv6LN7t9_ebx1Ov7QYZmoTZPqbbXhFPvjr0hRxEljUrJbABU_lS3FOz5hMTs0k8pz5WfH4BBJr2oqTMwxRrstQDUKUs0gcFAJKSOpjxbuKyqVbD7cFHJEKhbRQZO_9T_oQY29BxRXFysxCDWrWkJj0Crn1RB3Tw4v-ytZ1jDDTeOOBtJnXHIzBNvC-1vuFAAAAM3K3bYpIoId8XWs6JNc3O7vQD2I",
             *** "token_type": "bearer",
             *** "expires_in": 1209600,
             *** "refresh_token": "AQAAANCMnd8BFdERjHoAwE_Cl-sBAAAAL0Tx4aDDzEy32ulnOq3LdwAAAAACAAAAAAADZgAAwAAAABAAAAAVRydlGVhaZNrxt4-oNdyxAAAAAASAAACgAAAAEAAAAEqR-EIUM99O9sMHbJkeJPoIAQAAeddehchEbWjQiLCH8DiPRbZ_KLCBbhwPufIH7sGgBSAeZI9RDPwYTt0ThzOt6Ea9XCmPgv63WNY86UdlwUDy4fIY2g4sRxL9MrB0TEYt90tOJQojxVWFAvDOkxn_E5Mz5IuAJ3cGuZYLaxCxGJW4G_eBOrFsDPlOCQll1Pd6VEI_DYGFzfmVR3KsW41OyAyKnO-388zylouaM31chOC0aj6JiOW2YwJMhfGxKBZgq6gSZba2oMW327LT0vGLm4c3rHVvU5TkeyfgnRIO7s4mUh4FyEgmLFR32a9NyRDQj5ir3i86U2SMPPuJiR8F8trT_6E07_ASYQdtEnQr-pHQUgM46IWWJOD4FAAAAECwQpRIKa_rKdOtYawVhw8H3Fs9"
             ***}
             */

            using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "http://localhost:12345/token"))
            {
                List <KeyValuePair <string, string> > values = new List <KeyValuePair <string, string> > {
                    new KeyValuePair <string, string>(Constants.Parameters.GrantType, Constants.GrantTypes.Password),
                    new KeyValuePair <string, string>(Constants.Parameters.Username, UserName),
                    new KeyValuePair <string, string>(Constants.Parameters.Password, Password),
                    new KeyValuePair <string, string>(Constants.Parameters.Scope, "Read Write")
                };

                // client_id and client_secret: http://tools.ietf.org/html/rfc6749#section-2.3.1
                request.Headers.Authorization = new AuthenticationHeaderValue("Basic", EncodeToBase64(string.Format("{0}:{1}", ClientId, ClientSecret)));
                request.Content = new FormUrlEncodedContent(values);
                using (HttpResponseMessage response = await client.SendAsync(request))
                {
                    response.EnsureSuccessStatusCode();
                    AccessTokenResponse result = await response.Content.ReadAsAsync <AccessTokenResponse>();

                    return(result);
                }
            }
        }
Ejemplo n.º 14
0
        public object Get(AccessToken request)
        {
            AccessTokenResponse rsp = new AccessTokenResponse();

            _wxService.GetAccessToken(request, rsp);
            return(rsp);
        }
Ejemplo n.º 15
0
        public ActionResult <IEnumerable <string> > Get()
        {
            _logger.LogInformation("你访问了首页");
            _logger.LogWarning("警告信息");
            _logger.LogError("错误信息");

            string CorpID     = "dingb578e1d0be14c3f135c2f4657eb6378f";                             // ConfigHelper.FetchCorpID();
            string CorpSecret = "p_FeZ6xm3cnnDDdcvvbFbWc9uKyimvZjzmAAJ-csDkwE5oE7XeeHY-WLtLuvWbeM"; // ConfigHelper.FetchCorpSecret();
            string TokenUrl   = "https://oapi.dingtalk.com/gettoken";
            string apiurl     = $"{TokenUrl}?corpid={CorpID}&corpsecret={CorpSecret}";

            WebRequest request = WebRequest.Create(@apiurl);

            request.Method = "GET";
            WebResponse  response   = request.GetResponse();
            Stream       stream     = response.GetResponseStream();
            Encoding     encode     = Encoding.UTF8;
            StreamReader reader     = new StreamReader(stream, encode);
            string       resultJson = reader.ReadToEnd();

            AccessTokenResponse tokenResult = JsonConvert.DeserializeObject <AccessTokenResponse>(resultJson);

            if (tokenResult.ErrCode == ErrCodeEnum.OK)
            {
            }

            return(new string[] { "value1", "value2" });
        }
        public async Task <AccessTokenResponse> RequestAccessToken(string idToken)
        {
            AccessTokenResponse response;

            try
            {
                response = await b2cBaseUrl
                           .AppendPathSegment("token")
                           .PostUrlEncodedAsync(new
                {
                    client_id     = ClientId,
                    code_verifier = httpContext.Request.Cookies["c"],
                    client_secret = ClientSecret,
                    code          = idToken,
                    grant_type    = "authorization_code",
                    redirect_uri  = RedirectUrl,
                    scope         = string.Join(" ", Scopes)
                }, CancellationToken.None).ReceiveJson <AccessTokenResponse>();

                AddToCache("accessToken", response);
            }
            catch (FlurlHttpException e)
            {
                response = new AccessTokenResponse
                {
                    access_token = $"{e.Message} - {e.GetResponseStringAsync().Result}"
                };
            }

            return(response);
        }
        public static void WriteToLocalJsonFile(this AccessTokenResponse tokenResponse)
        {
            string json     = JsonConvert.SerializeObject(tokenResponse);
            string jsonPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "token.json");

            File.WriteAllText(jsonPath, json);
        }
Ejemplo n.º 18
0
        public bool SyncMessages(SyncMessageSettingsModel model, AccessTokenResponse token)
        {
            try
            {
                for (var i = 0; i < model.SyncMessageCount; i++)
                {
                    var lastSyncedMessageCount = this.vkMessageRepository.All().Count();
                    var messagesList           = this.vkApiProvider.LoadMessagesByUserId(token.AccessToken,
                                                                                         model.OwnerUserId.ToString(), 200, lastSyncedMessageCount);

                    var messagesDbList = Mapper.Map <List <DialogMessage>, List <VkMessage> >(messagesList.ToList());

                    foreach (var message in messagesDbList)
                    {
                        this.vkMessageRepository.Create(message);
                    }
                }

                this.vkMessageRepository.SaveChanges();

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        /// <summary>Processes the login using the specified username and password.</summary>
        /// <param name="model">The login model.</param>
        /// <returns>An action result.</returns>
        public virtual async Task <ISentinelIdentity> ProcessLogin(LoginModel model)
        {
            AccessTokenResponse tokenResponse = null;

            try
            {
                tokenResponse = await this.oauthClient.Authenticate(model.Username, model.Password, new[] { "openid" });
            }
            catch (HttpRequestException ex)
            {
                this.log.Error(ex);

                this.ModelState.AddModelError("Common", "The server seems to be having some problems right now, please try again later");

                return(SentinelIdentity.Anonymous);
            }
            catch (Exception ex)
            {
                this.log.Error(ex);
            }

            if (string.IsNullOrEmpty(tokenResponse?.AccessToken))
            {
                this.ModelState.AddModelError("Common", "Username or password is invalid");

                return(SentinelIdentity.Anonymous);
            }

            return(await this.ProcessTokenResponse(tokenResponse, model.RememberMe, model.ReturnUrl));
        }
        /// <summary>Process the token response from the API.</summary>
        /// <param name="tokenResponse">The access token response.</param>
        /// <param name="rememberMe">true to remember login.</param>
        /// <param name="returnUrl">The return url.</param>
        /// <returns>A Task.</returns>
        private async Task <ISentinelIdentity> ProcessTokenResponse(AccessTokenResponse tokenResponse, bool rememberMe, string returnUrl)
        {
            // Log in using Sentinel authentication handler
            if (!string.IsNullOrEmpty(tokenResponse.IdToken))
            {
                var jwt = new JsonWebToken(tokenResponse.IdToken);

                var props = new AuthenticationProperties()
                {
                    IsPersistent = rememberMe,
                    RedirectUri  = returnUrl
                };

                // Create identity
                var cookieIdentity = jwt.ToIdentity(DefaultAuthenticationTypes.ApplicationCookie).ToClaimsIdentity();
                cookieIdentity.AddClaim(new Claim("access_token", tokenResponse.AccessToken));

                // Sign in temporarily
                this.Authentication.SignIn(props, cookieIdentity);

                return(new SentinelIdentity(cookieIdentity));
            }

            this.log.Warn($"No id_token received, unable to log in using {DefaultAuthenticationTypes.ApplicationCookie}");

            return(SentinelIdentity.Anonymous);
        }
Ejemplo n.º 21
0
        /// <inheritdoc />
        public async Task <PlaidResult <AccessTokenResponse> > ExchangePublicTokenForAccessTokenAsync(string publicToken)
        {
            //conditions
            Condition.Requires(publicToken).IsNotNullOrWhiteSpace();

            //create the payload to pass
            var payload = new ExchangePublicTokenForAccessTokenRequest(clientId, clientSecret, publicToken);

            //serialize object
            HttpContent content = ContentExtensions.ToJsonContent(payload);

            //post it and get the response
            HttpResponseMessage response = await this.httpClient.PostAsync(PlaidInformation.LinkEndpoint_ExchangePublicToken, content);

            //read the string
            string responseJson = await response.Content.ReadAsStringAsync();

            //create the result
            PlaidResult <AccessTokenResponse> result = new PlaidResult <AccessTokenResponse>(responseJson);

            //is it ok
            if (response.StatusCode == HttpStatusCode.OK)
            {
                AccessTokenResponse exchangeTokenResponse = JsonConvert.DeserializeObject <AccessTokenResponse>(responseJson);
                result.Value = exchangeTokenResponse;
            }

            //parse the exception
            result.Exception = await this.ParseException(response, responseJson);

            //return
            return(result);
        }
        private static TimeSpan _expiresIn(AccessTokenResponse r)
        {
            var expAccessToken = _expiresIn(r.AccessToken);
            var expIdToken     = TimeSpan.FromSeconds(r.ExpiresIn);

            return(new[] { expAccessToken, expIdToken }.Min());
        }
        private async Task <AccessToken> FilteredAuthenticate <T>(string token)
        {
            var jsonSerializerSettings = new JsonSerializerSettings();

            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "b7aecfae-1396-4e38-ad21-6d0ce569fe62 " + token);
            string json    = @"{""id"":""1"", ""method"":""user.Authenticate"", ""jsonrpc"":""2.0""}";
            var    content = new StringContent(json);
            AccessTokenResponse accessTokenResponse = new AccessTokenResponse();

            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            using (var response = await client.PostAsync("https://api.sec.filtered.com/v2/jsonrpc/auth", content))
            {
                string apiResponse = await response.Content.ReadAsStringAsync();

                try
                {
                    accessTokenResponse = JsonConvert.DeserializeObject <AccessTokenResponse>(apiResponse);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            };
            return(accessTokenResponse.Result);
        }
Ejemplo n.º 24
0
    private void OnAccessTokenCallback(bool success, AccessTokenResponse response)

    {
        if (success)

        {
            CeresitaWebService.Singleton.user.twitterId = response.UserId + "," + response.ScreenName + "," + response.Token + "," + response.TokenSecret;

            CeresitaWebService.Singleton.UpdateUser(delegate(CeresitaWebService.WEBSERVICE_RETURN ret)

            {
                if (ret == CeresitaWebService.WEBSERVICE_RETURN.USER_UPDATED)

                {
                    AccountManager.Singleton.UpdateInformation();

                    ShareImage();
                }

                else

                {
                    Alert.Singleton.ShowAlert(Alert.Message.ERROR);
                }
            });
        }

        else

        {
            Alert.Singleton.ShowAlert(Alert.Message.ERROR);
        }
    }
Ejemplo n.º 25
0
        public override Task <AccessTokenResponse> ObterAccessToken(AccessTokenRequest request, ServerCallContext context)
        {
            var response = new AccessTokenResponse();

            try
            {
                var usuarioId  = Guid.Parse(request.UsuarioId);
                var redesocial = (RedeSocialEnum)request.RedeSocial;

                var envelopeResponse = accessTokenServico.Obter(usuarioId, redesocial);

                response.HttpStatusCode = (int)envelopeResponse.HttpStatusCode;

                if (envelopeResponse.Success)
                {
                    response.Token = envelopeResponse.Item.Token;
                }
            }
            catch (EnvelopeException env)
            {
                response.HttpStatusCode = (int)env.HttpStatusCode;
            }
            catch (Exception)
            {
                response.HttpStatusCode = (int)HttpStatusCode.InternalServerError;
            }

            return(Task.FromResult(response));
        }
        public async Task TestUpdateCredential()
        {
            var secretPath    = Guid.NewGuid().ToString();
            var oldSecretPath = $"{_devOpsContext.BasePathPrefix}:{secretPath}";
            var value         = new Credential()
            {
                Username = Guid.NewGuid().ToString(), Password = Guid.NewGuid().ToString()
            };

            var tokenReturn = new AccessTokenResponse("access-token", 3600, tokenType: "bearer");

            _tokensApi.Token("client_credentials", clientId: _devOpsContext.ClientId,
                             clientSecret: _devOpsContext.ClientSecret)
            .Returns(tokenReturn);

            var secretReturn = Task.FromResult(new SecretResponse(path: oldSecretPath));

            _secretsApi.UpdateSecretAsync(oldSecretPath,
                                          Arg.Is <SecretUpsert>(x => x.Data["password"].Equals(value.Password) && x.Data["username"].Equals(value.Username)))
            .Returns(secretReturn);

            var result = await _secureStore.UpdateCredentialsAsync(_ctxString, secretPath, oldSecretPath, value);

            Assert.AreEqual(oldSecretPath, result);
        }
Ejemplo n.º 27
0
        public AccessTokenResponse Authorize(string clientId, string clientSecret)
        {
            var Request = new RestRequest("auth/token", Method.POST);

            Request.AddHeader("Accept-Language", this.Language);

            var Parameters = new
            {
                client_id     = clientId,
                client_secret = clientSecret,
                grant_type    = "client_credentials"
            };
            var Json = JsonConvert.SerializeObject(Parameters);

            Request.AddJsonBody(Json);

            var Response = this.Client.Execute(Request);
            AccessTokenResponse ResponseObject = JsonConvert.DeserializeObject <AccessTokenResponse>(Response.Content);

            if (ResponseObject.Errors == null)
            {
                this.AccessToken = ResponseObject.Data.AccessToken;
            }
            ResponseObject.HttpResponse = Response;
            return(ResponseObject);
        }
Ejemplo n.º 28
0
    public async Task <IActionResult> Callback(
        AuthorizationCodeResponseViewModel authorizationCodeResponseViewModel,
        ImplicitFlowResponseQueryStringViewModel implicitFlowResponseQueryStringViewModel,
        ErrorResponseViewModel errorResponseAtResponseViewModel)
    {
        if (!string.IsNullOrWhiteSpace(errorResponseAtResponseViewModel.Error))
        {
            var errorResponseAtCallback = OAuthMapper.Map(errorResponseAtResponseViewModel);
            return(ProcessOAuthClientErrorResponse(errorResponseAtCallback));
        }

        var originalState = (string)TempData.ReadAndClear(Common.State);
        var codeVerifier  = (string)TempData.ReadAndClear(Common.CodeVerifier);

        var authorizationCodeCallbackResponse = OAuthMapper.Map(authorizationCodeResponseViewModel);
        var implicitFlowCallbackResponse      = OAuthMapper.Map(implicitFlowResponseQueryStringViewModel);

        var response = await _oAuthFlows.RunFlow(
            _oAuthClientConfiguration,
            authorizationCodeCallbackResponse,
            implicitFlowCallbackResponse,
            originalState : originalState,
            codeVerifier : codeVerifier);

        return(response switch
        {
            AccessTokenResponse accessTokenResponse => await SignInUser(accessTokenResponse, originalState),
            ErrorResponse errorResponse => ProcessOAuthClientErrorResponse(errorResponse)
        });
Ejemplo n.º 29
0
        /// <summary>
        /// Obtain a new access token using a refresh token
        /// </summary>
        /// <param name="refreshToken">The refresh token the client application already received.</param>
        /// <param name="clientId">The Consumer Key from the connected app definition.</param>
        /// <param name="clientSecret">The Consumer Secret from the connected app definition. Required unless the Require Secret for Web Server Flow setting is not enabled in the connected app definition.</param>
        /// <param name="tokenRequestEndpointUrl"></param>
        /// <returns></returns>
        public async Task TokenRefreshAsync(string refreshToken, string clientId, string clientSecret = "", string tokenRequestEndpointUrl = TokenRequestEndpointUrl)
        {
            var uri = UriFormatter.RefreshTokenUrl(
                tokenRequestEndpointUrl,
                refreshToken,
                clientId,
                clientSecret);

            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Post,
                RequestUri = uri
            };

            request.Headers.UserAgent.ParseAdd(string.Concat(UserAgent, "/", ApiVersion));

            var responseMessage = await _httpClient.SendAsync(request).ConfigureAwait(false);

            var response = await responseMessage.Content.ReadAsStringAsync().ConfigureAwait(false);

            if (responseMessage.IsSuccessStatusCode)
            {
                this.AccessInfo = JsonConvert.DeserializeObject <AccessTokenResponse>(response);
                this.AccessInfo.RefreshToken = refreshToken; //not included in reponse
            }
            else
            {
                var errorResponse = JsonConvert.DeserializeObject <AuthErrorResponse>(response);
                throw new ForceAuthException(errorResponse.Error, errorResponse.ErrorDescription, responseMessage.StatusCode);
            }
        }
Ejemplo n.º 30
0
        public async Task <Market> GetMarketAsync()
        {
            // TODO: ver alguna forma de que esto sea permanente, y se use el token que corresponda, bearer o refresh.
            BearerToken = await GenerateAccessToken();

            if (null == BearerToken)
            {
                // TODO: Log this exception.
                throw new Exception("Cannot retrieve Market information: BearerToken not available.");
            }

            // antes de ejecutar la llamada normal, asociar el bearer token
            // TODO: Hacer alguna forma de asociar esto, que sea mas reusable.
            _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", BearerToken.AccessToken);

            //var httpResponse = await _client.GetAsync($"{urlMarket}");
            var httpResponse = await _client.GetAsync($"{urlMarketReady}");

            if (!httpResponse.IsSuccessStatusCode)
            {
                throw new Exception("Cannot retrieve Market information.");
            }

            var content = await httpResponse.Content.ReadAsStringAsync();

            //TODO: Ver si no hay que hacer un mapping acá de alguna forma.
            var item = JsonConvert.DeserializeObject <Market>(content);

            // TODO: ver que onda Ok.
            //var market = new Market();
            //market.PanelTituloModel = item;

            return(item);
            //return market;
        }
Ejemplo n.º 31
0
        public static async Task<object> GetValuesAsync(HttpClient client, AccessTokenResponse accessTokenResponse)
        {
            using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, baseUrl + "/api/customer/1"))
            {
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessTokenResponse.AccessToken);

                using (HttpResponseMessage response = await client.SendAsync(request))
                {
                    response.EnsureSuccessStatusCode();
                    var result = await response.Content.ReadAsAsync<object>();

                    return result;
                }
            }
        }