private bool PerformTokenCheck(VKAccessToken token, bool isUserDefinedToken = false) { if (token == null) { return(false); } if (token.IsExpired) { AccessTokenExpired(null, new VKAccessTokenExpiredEventArgs { ExpiredToken = token }); return(false); } if (token.AccessToken != null) { if (isUserDefinedToken) { AccessTokenAccepted(null, new VKAccessTokenAcceptedEventArgs { Token = token }); } return(true); } var error = new VKError { error_code = (int)VKResultCode.InvalidToken }; AccessDenied(null, new VKAccessDeniedEventArgs { AuthorizationError = error }); return(false); }
/// <summary> /// Removes active token from memory and IsolatedStorage at default key. /// </summary> public static void Logout() { Instance.AccessToken = null; VKAccessToken.RemoveTokenInIsolatedStorage(VKSDK_ACCESS_TOKEN_ISOLATEDSTORAGE_KEY); VKUtil.ClearCookies(); }
public static bool WakeUpSession() { var token = VKAccessToken.TokenFromIsolatedStorage(VKSDK_ACCESS_TOKEN_ISOLATEDSTORAGE_KEY); if (!Instance.PerformTokenCheck(token)) { return(false); } Instance.AccessToken = token; return(true); }
/// <summary> /// Save API access token in IsolatedStorage with default key. /// </summary> /// <param name="token">Access token to be used for API requests</param> /// <param name="renew">Is token being renewed. Raises different event handlers (AccessTokenReceived or AccessTokenRenewed)</param> public static void SetAccessToken(VKAccessToken token, bool renew = false) { Instance.AccessToken = token; if (!renew) { AccessTokenReceived(null, new VKAccessTokenReceivedEventArgs { NewToken = token }); } else { AccessTokenRenewed(null, new AccessTokenRenewedEventArgs { Token = token }); } Instance.AccessToken.SaveTokenToIsolatedStorage(VKSDK_ACCESS_TOKEN_ISOLATEDSTORAGE_KEY); }
public static bool WakeUpSession() { bool result = true; var token = VKAccessToken.TokenFromIsolatedStorage(VKSDK_ACCESS_TOKEN_ISOLATEDSTORAGE_KEY); if (!Instance.PerformTokenCheck(token)) { result = false; } else { Instance.AccessToken = token; } TrackStats(); return(result); }
/// <summary> /// Retreive token from key-value map /// </summary> /// <param name="args">Dictionary containing token info</param> /// <returns>Parsed token</returns> public static VKAccessToken TokenFromParameters(Dictionary <String, String> args) { if (args == null || args.Count == 0) { return(null); } try { var token = new VKAccessToken(); args.TryGetValue(ACCESS_TOKEN, out token.AccessToken); string expiresValue; args.TryGetValue(EXPIRES_IN, out expiresValue); int.TryParse(expiresValue, out token.ExpiresIn); args.TryGetValue(USER_ID, out token.UserId); args.TryGetValue(SECRET, out token.Secret); if (args.ContainsKey(HTTPS_REQUIRED)) { token.IsHttpsRequired = args[HTTPS_REQUIRED] == "1"; } else if (token.Secret == null) { token.IsHttpsRequired = true; } if (args.ContainsKey(CREATED)) { long.TryParse(args[CREATED], out token.Created); } else { token.Created = VKUtil.CurrentTimeMillis(); } return(token); } catch { } return(null); }
/// <summary> /// Check new access token and assign as instance token /// </summary> /// <param name="tokenParams">Params of token</param> /// <param name="isTokenBeingRenewed">Flag indicating token renewal</param> /// <returns>Success if token has been assigned or error</returns> private static CheckTokenResult CheckAndSetToken(Dictionary <String, String> tokenParams, bool isTokenBeingRenewed) { var token = VKAccessToken.TokenFromParameters(tokenParams); if (token == null || token.AccessToken == null) { if (tokenParams.ContainsKey(VKAccessToken.SUCCESS)) { return(CheckTokenResult.Success); } var error = new VKError { error_code = (int)VKResultCode.UserAuthorizationFailed }; return(CheckTokenResult.Error); } else { SetAccessToken(token, isTokenBeingRenewed); return(CheckTokenResult.Success); } }
/// <summary> /// Initialize SDK with custom token key (e.g. saved from other source or for some test reasons) /// </summary> /// <param name="appId">Your VK app ID. /// If you don't have one, create a standalone app here: https://vk.com/editapp?act=create </param> /// <param name="token">Custom-created access token</param> public static void Initialize(String appId, VKAccessToken token) { Initialize(appId); Instance.AccessToken = token; Instance.PerformTokenCheck(token, true); }
/// <summary> /// Retreive token from key-value map /// </summary> /// <param name="args">Dictionary containing token info</param> /// <returns>Parsed token</returns> public static VKAccessToken TokenFromParameters(Dictionary<String, String> args) { if (args == null || args.Count == 0) return null; try { var token = new VKAccessToken(); args.TryGetValue(ACCESS_TOKEN, out token.AccessToken); string expiresValue; args.TryGetValue(EXPIRES_IN, out expiresValue); int.TryParse(expiresValue, out token.ExpiresIn); args.TryGetValue(USER_ID, out token.UserId); args.TryGetValue(SECRET, out token.Secret); if (args.ContainsKey(HTTPS_REQUIRED)) token.IsHttpsRequired = args[HTTPS_REQUIRED] == "1"; else if (token.Secret == null) token.IsHttpsRequired = true; if (args.ContainsKey(CREATED)) long.TryParse(args[CREATED], out token.Created); else token.Created = VKUtil.CurrentTimeMillis(); return token; } catch { } return null; }
private bool PerformTokenCheck(VKAccessToken token, bool isUserDefinedToken = false) { if (token == null) return false; if (token.IsExpired) { AccessTokenExpired(null, new VKAccessTokenExpiredEventArgs { ExpiredToken = token }); return false; } if (token.AccessToken != null) { if (isUserDefinedToken) AccessTokenAccepted(null, new VKAccessTokenAcceptedEventArgs { Token = token }); return true; } var error = new VKError { error_code = (int)VKResultCode.InvalidToken }; AccessDenied(null, new VKAccessDeniedEventArgs { AuthorizationError = error }); return false; }
/// <summary> /// Save API access token in IsolatedStorage with default key. /// </summary> /// <param name="token">Access token to be used for API requests</param> /// <param name="renew">Is token being renewed. Raises different event handlers (AccessTokenReceived or AccessTokenRenewed)</param> public static void SetAccessToken(VKAccessToken token, bool renew = false) { if (Instance.AccessToken == null || (Instance.AccessToken.AccessToken != token.AccessToken || Instance.AccessToken.ExpiresIn != token.ExpiresIn)) { Instance.AccessToken = token; if (!renew) AccessTokenReceived(null, new VKAccessTokenReceivedEventArgs { NewToken = token }); else AccessTokenRenewed(null, new AccessTokenRenewedEventArgs { Token = token }); Instance.AccessToken.SaveTokenToIsolatedStorage(VKSDK_ACCESS_TOKEN_ISOLATEDSTORAGE_KEY); } }