public void Connect(String matchId) { // URI uri; // try { // uri = new URI(url); // } catch (URISyntaxException e) { // e.printStackTrace(); // // TODO: 7/13/16 AD What to do? // return; // } Dictionary <String, String> extraHeaders = new Dictionary <String, String>(); // TODO: uncomment // extraHeaders.Add("user-agent", System.getProperty("http.agent")); // TODO: 7/13/16 AD WebSocket should gather token in true manner // extraHeaders.put("Authorization", "Bearer " + BacktoryAuth.getAccessToken()); extraHeaders.Add("Authorization-Bearer", BacktoryUser.GetAccessToken()); extraHeaders.Add("X-Backtory-Connectivity-Id", X_BACKTORY_CONNECTIVITY_ID); if (matchId != null) { extraHeaders.Add("X-Backtory-Realtime-Challenge-Id", matchId); } InnerStompWebSocketEventHandler innerEventHandler = new InnerStompWebSocketEventHandler(this); webSocketClient = new InnerBacktoryStompWebSocket(this, url, extraHeaders, innerEventHandler); webSocketClient.Connect(); }
public void loginChallengeUser2() { BacktoryUser.LoginInBackground(testUser2.username, testUser2.password, (IBacktoryResponse response) => { ResultText.text = response.Successful ? "Challenge user 2 login succeeded." : "failed; " + response.Message; setChallengeListeners(); }); }
private IRestRequest AddDefaultHeaders(IRestRequest rawRequest) { rawRequest.AddHeader(Backtory.GameInstanceIdString, BacktoryConfig.BacktoryGameInstanceId); rawRequest.AddHeader(BacktoryUser.KeyAuthorization, BacktoryUser.AuthorizationHeader()); rawRequest.AddHeader("Accept", Backtory.ApplicationJson); return(rawRequest); }
public void onChangePassword() { BacktoryUser.GetCurrentUser().ChangePasswordInBackground(LastGenPassword, "4321", changePassResponse => { ResultText.text = changePassResponse.Successful ? "succeeded" : "failed; " + changePassResponse.Message; }); }
public void LogIn() { loadingPanel.SetActive(true); BacktoryUser.LoginInBackground(usernameLogIn.text, passwordLogIn.text, loginResponse => { // Login operation done (fail or success), handling it: if (loginResponse.Successful) { PlayerPrefs.SetString("Username", usernameLogIn.text); PlayerPrefs.SetString("PassWord", passwordLogIn.text); // Login successful LogInPanel.SetTrigger("Idle"); DownloadData(); loadingScreen.Instance.Show("MainMenu"); } else if (loginResponse.Code == (int)BacktoryHttpStatusCode.Unauthorized) { // Username 'mohx' with password '123456' is wrong Debug.Log("Either username or password is wrong."); LogInLogText.text = GameManager.Language("نام کاربری یا رزم عبور اشتباه است", "Either username or password is wrong.", LogInLogText); loadingPanel.SetActive(false); } else { // Operation generally failed, maybe internet connection issue Debug.Log("Login failed for other reasons like network issues."); LogInLogText.text = GameManager.Language("خطلا در ورود", "Login failed", LogInLogText); loadingPanel.SetActive(false); } }); }
/* * Person-to-Person Chat */ public void loginChatUser() { BacktoryUser.LoginInBackground(testUser1.username, testUser1.password, (IBacktoryResponse response) => { ResultText.text = response.Successful ? "Chat user login succeeded" : "failed; " + response.Message; BacktoryChat.Direct.SetOnReceivingMessageListener((message) => { MessageText.text = JsonConvert.SerializeObject(message, Formatting.Indented, JsonnetSetting()); }); BacktoryChat.Group.SetOnInvitingToJoinListener((message) => { MessageText.text = "Invited to join!\n" + JsonConvert.SerializeObject(message, Formatting.Indented, JsonnetSetting()); invitedGroupId = message.GroupId; }); BacktoryChat.Group.SetOnMemberAddedListener((message) => { MessageText.text = "Member added to group!\n" + JsonConvert.SerializeObject(message, Formatting.Indented, JsonnetSetting()); }); BacktoryChat.Group.SetOnMemberJoinedListener((message) => { MessageText.text = "Member joined the group!\n" + JsonConvert.SerializeObject(message, Formatting.Indented, JsonnetSetting()); }); BacktoryChat.Group.SetOnMemberLeftListener((message) => { MessageText.text = "Member left the group!\n" + JsonConvert.SerializeObject(message, Formatting.Indented, JsonnetSetting()); }); BacktoryChat.Group.SetOnMemberRemovedListener((message) => { MessageText.text = "Member is removed from group!\n" + JsonConvert.SerializeObject(message, Formatting.Indented, JsonnetSetting()); }); BacktoryChat.Group.SetOnReceivingMessageListener((message) => { MessageText.text = "Message received from group chat!\n" + JsonConvert.SerializeObject(message, Formatting.Indented, JsonnetSetting()); }); }); }
public void onGuestRegisterClick() { //BacktoryUser.LoginAsGuestInBackground(response => //{ // ResultText.text = response.Body.AccessToken; // Debug.Log("result set"); //}); BacktoryUser.LoginAsGuestInBackground(PrintCallBack <BacktoryUser.LoginResponse>()); }
private static RestRequest RegisterRequest(BacktoryUser registrationParams) { // var request = Backtory.RestRequest("users", Method.POST); var request = Backtory.RestRequest("auth/users", Method.POST); request.AddHeader(Backtory.AuthInstanceIdString, BacktoryConfig.BacktoryAuthInstanceId); request.AddJsonBody(registrationParams); return(request); }
public void onUpdateUser() { BacktoryUser user = BacktoryUser.CurrentUser; user.FirstName = "UpdatedFirstName"; user.LastName = "UpdatedLastName"; user.Username = usernameInput.text; user.Email = emailInput.text; user.PhoneNumber = "22222222"; user.UpdateUserInBackground(PrintCallBack <BacktoryUser> ()); }
public void onForgetPassword() { if (usernameInput.text == "") { ResultText.text = "Enter username!"; return; } BacktoryUser.ForgotPasswordInBackground(usernameInput.text, response => { ResultText.text = response.Successful ? "Forgot password succeeded." : "failed; " + response.Message; }); }
private static IRestRequest NewAccessTokenRequest() { var request = RestRequest("auth/login", Method.POST); request.AlwaysMultipartFormData = true; request.AddHeader(AuthInstanceIdString, BacktoryConfig.BacktoryAuthInstanceId); request.AddHeader(AuthClientKeyString, BacktoryConfig.BacktoryAuthClientKey); request.AddHeader("X-Backtory-Authentication-Refresh", "1"); request.AddParameter("refresh_token", BacktoryUser.GetRefreshToken(), ParameterType.GetOrPost); return(request); }
private IRestRequest SendEventRequest(BacktoryGameEvent backtoryGameEvent) { var request = Backtory.RestRequest("game/events", Method.POST); request.AddHeader(Backtory.GameInstanceIdString, BacktoryConfig.BacktoryGameInstanceId); request.AddHeader(BacktoryUser.KeyAuthorization, BacktoryUser.AuthorizationHeader()); request.AddHeader("Accept", Backtory.ApplicationJson); request.AddJsonBody(backtoryGameEvent); return(request); }
public void onUpdateUser() { var user = BacktoryUser.GetCurrentUser(); user.FirstName = "edit"; user.LastName = "edit manesh"; user.Username = GenerateUsername(true); user.Email = GenerateEmail(true); user.PhoneNumber = "22222222"; user.UpdateUserInBackground(PrintCallBack <BacktoryUser>()); }
private RestRequest UpdateUserRequest(BacktoryUser toBeUpdateUser) { // var request = Backtory.RestRequest("users/{user_id}", Method.PUT); var request = Backtory.RestRequest("auth/users/{user_id}", Method.PUT); request.AddHeader(Backtory.AuthInstanceIdString, BacktoryConfig.BacktoryAuthInstanceId); request.AddHeader(KeyAuthorization, AuthorizationHeader()); request.AddParameter("user_id", toBeUpdateUser.UserId, ParameterType.UrlSegment); request.AddJsonBody(toBeUpdateUser); return(request); }
public void onCompleteRegistration() { LastGenUsername = GenerateUsername(true); LastGenPassword = "******"; BacktoryUser.GetCurrentUser().CompleteRegistrationInBackgrond(new BacktoryUser.GuestCompletionParam() { FirstName = "not guest", LastName = "not guest last name", Email = GenerateEmail(true), NewPassword = LastGenPassword, NewUsername = LastGenUsername }, PrintCallBack <BacktoryUser>()); }
void clicked() { playSound("Button"); if (PlayerPrefs.GetString("Username") != "") { LoadingPanel.SetActive(true); BacktoryUser.LoginInBackground(PlayerPrefs.GetString("Username"), PlayerPrefs.GetString("PassWord"), loginResponse => { // Login operation done (fail or success), handling it: if (loginResponse.Successful) { // Login successful ShowLeaderBoard(); } else if (loginResponse.Code == (int)BacktoryHttpStatusCode.Unauthorized) { // Username 'mohx' with password '123456' is wrong Debug.Log("Either username or password is wrong."); LoadingPanel.SetActive(false); } else { // Operation generally failed, maybe internet connection issue Debug.Log("Login failed for other reasons like network issues."); LoadingPanel.SetActive(false); } }); } else { signUpPanel.SetTrigger("Enter"); SignUpName.text = GameManager.Language("ثبت نام", "Sign Up", SignUpName); if (PlayerPrefs.GetString("Language") == "Persian") { UserNameText.text = "نام کاربری"; PassWordText.text = "رمز ورود"; EmailText.text = "ایمیل"; } else { UserNameText.text = "Username"; PassWordText.text = "Password"; EmailText.text = "E-mail"; } } }
//private static BacktoryResponse<T> RawResponseToBacktoryResponse<T>(IRestResponse<T> response) where T : class, new() //{ // BacktoryResponse<T> result; // if (response.ErrorException != null || !response.IsSuccessful()) // { // if ((int)response.StatusCode == (int)BacktoryHttpStatusCode.Unauthorized) // response = Handle401StatusCode(response); // result = BacktoryResponse<T>.Error((int)response.StatusCode, response.ErrorMessage); // } // else // result = BacktoryResponse<T>.Success((int)response.StatusCode, response.Data); // Debug.Log("Receiving response of: " + typeof(T).Name + " with code: " + result.Code + "\ncause: " + response.ErrorMessage); // Debug.Log(response.ResponseUri); // return result; //} /// <summary> /// A 401 error mostly indicates access-token is expired. (Only exception is login which 401 shows incorrect username/password) /// We must refresh the access-token using refresh-token and retry the original request with new access-token /// If on refreshing access-token we get another 401, it indicates refresh-token is expired, too /// On that case, if current user is guest we must login with stored username-pass and if not we must force the user to login /// </summary> /// <typeparam name="T">type of response body</typeparam> /// <param name="response">raw response containing error 401</param> /// <returns></returns> private static IRestResponse Handle401StatusCode(IRestResponse response) { // in response of login request (no access token yet!) return the original response if (response.Request.Resource.Contains("login")) { return(response); } // In some request like cloudcode's run, 401 might indicate to absence of access-token not the expiration. // We detect this by checking access-token nullity and simply just return the response. if (BacktoryUser.GetAccessToken() == null) { return(response); } // getting new access-token var tokenResponse = RestClient.Execute <BacktoryUser.LoginResponse>(BacktoryUser.NewAccessTokenRequest()); if (tokenResponse.ErrorException != null || !response.IsSuccessful()) { // failed to get new token if ((int)tokenResponse.StatusCode == (int)BacktoryHttpStatusCode.Unauthorized) // 401 { // refresh token itself is expired if (BacktoryUser.GetCurrentUser().Guest) { // if guest, first login with stored username/pass and the retry the request // new token is stored and after this we can simply call original request again which uses new token BacktoryUser.Login(BacktoryUser.GetCurrentUser().Username, BacktoryUser.GetGuestPassword()); } // normal user must login again // TODO: clean way for forcing user to login. How to keep his/her progress? How to retry original request? else { BacktoryUser.ClearBacktoryStoredData(); // On this case return value is not important // TODO: may be changing the response error message BacktoryManager.Instance.GlobalEventListener.OnEvent(BacktorySDKEvent.LogoutEvent()); } } // successfully gotten new token } return(RestClient.Execute(response.Request)); }
// Forgetting password function public void onForgotpassClick() { string username = usernameInputlog.text; // Requesting forget password to backtory BacktoryUser.ForgotPasswordInBackground(username, response => { if (response.Successful) { myMessageBoxlogin.SetMessage("کلمه عبور جدید به ایمیلت ارسال شد."); // Showforgotpass(); // Debug.Log("Go to your mail inbox and verify your request."); } else { Debug.Log("failed; " + response.Message); } }); }
public void OnLoginButtonClicked() { BacktoryUser.LoginInBackground(loginUsername.text, loginPassword.text, loginResponse => { if (loginResponse.Successful) { Debug.Log("Welcome, " + loginUsername.text + "!"); SceneManager.LoadScene("Main"); } else if (loginResponse.Code == (int)BacktoryHttpStatusCode.Unauthorized) { Debug.Log("Either username or password is wrong"); } else { Debug.Log("Strange! Login Failed! code: " + loginResponse.Code); } }); }
public void LoginProcess(string username, string password, bool newUser) { BacktoryUser.LoginInBackground(username, password, loginResponse => { // Login operation done (fail or success), handling it: if (loginResponse.Successful) { Debug.Log("Login Successful."); SceneManager.LoadScene("MainMenu"); // We have UserId and if it is the first time that he logs in, we should send age and gender to Backtory. if (PlayerPrefs.GetInt(alreadyRegistered) != 1) { if (newUser) { saveAgegen(); } // If the user is a member of service and because of exchanging his phone or clearing his playerprefs' data, // we can read his age/gen data locally. else { //TODO: LoadAgeGen() } } } else if (loginResponse.Code == (int)BacktoryHttpStatusCode.Unauthorized) { myMessageBoxlogin.SetMessage("نام کاربری یا کلمه عبور وارد شده صحیح نمی باشد."); // Showwrongmailusername(); // Username 'mohx' with password '123456' is wrong Debug.Log("Either username or password is wrong."); } else { myMessageBoxlogin.SetMessage("مشکلی در شبکه بوجود آمده، لطفا دوباره تلاش کنید."); // Shownetdownlog(); // Operation generally failed, maybe internet connection issue Debug.Log("Login failed for other reasons like network issues."); } }); }
// all methods could be static but we get a threading exception from PlayerPrefs /* GetString can only be called from the main thread. * Constructors and field initializers will be executed from the loading thread when loading a scene. * Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function. */ private IRestRequest CloudCodeRequest(string functionName, object requestBody, Type responseType) { var request = Backtory.RestRequest("cloud-code/{cloud_instance_id}/{function_name}", Method.POST); request.Timeout = 20 * 1000; // 20 seconds request.AddParameter("cloud_instance_id", BacktoryConfig.BacktoryCloudcodeInstanceId, ParameterType.UrlSegment); request.AddParameter("function_name", functionName, ParameterType.UrlSegment); request.AddHeader(BacktoryUser.KeyAuthorization, BacktoryUser.AuthorizationHeader()); if (requestBody.GetType() != typeof(string)) { request.AddJsonBody(requestBody); request.OnBeforeDeserialization = irestresponse => irestresponse.ContentType = Backtory.ApplicationJson; } else { request.AddParameter(Backtory.TextPlain, requestBody, ParameterType.RequestBody); request.OnBeforeDeserialization = irestresponse => irestresponse.ContentType = Backtory.TextPlain; } return(request); }
/* * Auth */ public void onGuestLoginClick() { BacktoryUser.LoginAsGuestInBackground(response => ResultText.text = response.Successful ? "Login as guest succeeded." : "failed; " + response.Message ); }
public void loginMMUser2() { BacktoryUser.LoginInBackground(testUser2.username, testUser2.password, (IBacktoryResponse response) => { ResultText.text = response.Successful ? "Matchmaking user 2 login succeeded." : "failed; " + response.Message; }); }
private static void DispatchSaveCurrentUser(BacktoryUser backtoryUser) { Backtory.Dispatch(() => { SaveAsCurrentUserInMemoryAndStorage(backtoryUser); }); }
private static void SaveAsCurrentUserInMemoryAndStorage(BacktoryUser user) { currentUser = user; Backtory.Storage.Put(KeyUsername, user.Username); Backtory.Storage.Put(KeyCurrentUser, Backtory.ToJson(user)); }
internal static void ClearBacktoryStoredData() { currentUser = null; Backtory.Storage.Clear(); }
public void onLogout() { BacktoryUser.LogoutInBackground(); ResultText.text = "successfully logged out"; }
public void onLoginClick() { BacktoryUser.LoginInBackground(usernameInput.text, passwordInput.text, response => ResultText.text = response.Successful ? "Login succeeded." : "failed; " + response.Message ); }
public void onLoginClick() { BacktoryUser.LoginInBackground(LastGenUsername, LastGenPassword, PrintCallBack <BacktoryUser.LoginResponse>()); }
public void onCurrentUserClick() { ResultText.text = Backtory.ToJson(BacktoryUser.GetCurrentUser(), true); }