public string AuthenticateUser(Login login, bool mfa) { string accessToken = string.Empty; using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri("https://api.robinhood.com/"); var parameters = new Dictionary <string, string> { { "grant_type", "password" }, { "client_id", "c82SH0WZOsabOXGP2sxqcj34FxkvfnWRZBKlBjFS" }, { "username", login.username }, { "password", login.password } }; var toPost = new FormUrlEncodedContent(parameters); var response = client.PostAsync("oauth2/token/", toPost).Result; var content = response.Content.ReadAsStringAsync().Result; if (!mfa) { accessToken = JsonParse.ParseAccessToken(content); login.refreshToken = JsonParse.ParseRefreshToken(content); SaveAccessTokenAndTimeStamp(accessToken, login.refreshToken); } } return(accessToken); }
public string CheckRefreshToken(Login login) { //If expired, we are gonna use refresh token to get a new access token if (DateTimeOffset.Now.ToUnixTimeSeconds() > login.TokenExpired) { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri("https://api.robinhood.com/"); var parameters = new Dictionary <string, string> { { "grant_type", "refresh_token" }, { "client_id", "c82SH0WZOsabOXGP2sxqcj34FxkvfnWRZBKlBjFS" }, { "refresh_token", login.refreshToken } }; var toPost = new FormUrlEncodedContent(parameters); var content = client.PostAsync("oauth2/token/", toPost).Result.Content.ReadAsStringAsync().Result; login.AccessToken = JsonParse.ParseAccessToken(content); login.refreshToken = JsonParse.ParseRefreshToken(content); } SaveAccessTokenAndTimeStamp(login.AccessToken, login.refreshToken); return("New Token Aquired"); } return("Token not expired"); }