Authenticate exception doesn't show

0 votes

Hello,

 

Currently I have a trouble with the authentication. When I input the correct username and password, It responded really well. But not with wrong username/password. The ecxeption did not work well.

Here is the code

using UnityEngine;
using com.shephertz.app42.paas.sdk.csharp;
using com.shephertz.app42.paas.sdk.csharp.user;
using com.shephertz.app42.paas.sdk.csharp.session;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using System.Collections;
using AssemblyCSharp;

public class App42Login : MonoBehaviour
{
    private const string apiKey = "78e127a04f3fba734e42bd76dbd6cc0e3d2dca95b9a110d10a86e2d7877f4993";
    private const string secretKey = "7a7ee19b94644eb0a230b2c6527a7669a7fe83ac62bf63ff36ba32d2b607db0b";

    //Service for creating, authenticating, deleting, updating User.
    private UserService userService;

    //User object that keeps informations about user.
    public static User user = new User();

    public GameObject username;
    public GameObject password;
    public string Username;
    private string Password;
    public bool userBlank = false;
    public bool passBlank = false;
    public bool authError = false;

    // Use this for initialization
    void Start()
    {
        ServiceAPI serviceAPI = new ServiceAPI(apiKey, secretKey);
        userService = App42API.BuildUserService();
    }

    public void OnGUI()
    {
        if (userBlank)
        {
            showUserBlank();
        }
        else if (passBlank)
        {
            showPassBlank();
        }
        else if (authError)
        {
            showAuthError();
        }
    }

    public void showUserBlank()
    {
        GUI.Box(new Rect(Screen.width / 2 - 100, Screen.height / 2 - 50, 200, 100), "Username cannot be blank!");
        if (GUI.Button(new Rect(Screen.width / 2 - 25, Screen.height / 2 - 5, 50, 30), "OK"))
        {
            hideError();
        }
    }

    public void showPassBlank()
    {
        GUI.Box(new Rect(Screen.width / 2 - 100, Screen.height / 2 - 50, 200, 100), "Password cannot be blank!");
        if (GUI.Button(new Rect(Screen.width / 2 - 25, Screen.height / 2 - 5, 50, 30), "OK"))
        {
            hideError();
        }
    }

    public void showAuthError()
    {
        GUI.Box(new Rect(Screen.width / 2 - 100, Screen.height / 2 - 50, 200, 100), "Username / password are incorrect!");
        if (GUI.Button(new Rect(Screen.width / 2 - 25, Screen.height / 2 - 5, 50, 30), "OK"))
        {
            hideError();
        }
    }

    public void hideError()
    {
        userBlank = false;
        passBlank = false;
        authError = false;
    }

    public void RegisterButton()
    {
        SceneManager.LoadScene("Register");
    }

    public bool checkLogin()
    {
        if (string.IsNullOrEmpty(Username))
        {
            userBlank = true;
            return false;
        }
        else
        {
            if (string.IsNullOrEmpty(Password))
            {
                passBlank = true;
                return false;
            }
            else
            {
                return true;
            }
        }
    }

    public void LoginButton()
    {
        if (checkLogin())
        {
            PlayerPrefs.SetString("username", Username);
            PlayerPrefs.Save();
            try
            {
                userService.Authenticate(Username, Password, new UnityCallBack());
                SessionService sessionService = App42API.BuildSessionService();
                sessionService.GetSession(Username, new UnityCallBack());
            }
            catch
            {
                authError = true;
            }
        }
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            LoginButton();
        }
        //get string dari textbox
        Username = username.GetComponent<InputField>().text;
        Password = password.GetComponent<InputField>().text;
    }
}

public class UnityCallBack : App42CallBack
{
    public void OnSuccess(object response)
    {
        User user = (User)response;
        App42Log.Console("userName is " + user.GetUserName());
        App42Log.Console("sessionId is " + user.GetSessionId());
        SceneManager.LoadScene("Main Menu");
    }

    public void OnException(System.Exception e)
    {
        /* Above statement throws App42Exception if authentication fails with error code 2002 */
        App42Log.Console("Exception : " + e);
    }
}

 

asked Sep 25, 2016 in Unity by Andre Setiawan (10 points)

1 Answer

0 votes
Hi Andre

Try to change App42Log.console with Debug.Log
answered Sep 27, 2016 by gokhan (20 points)
Download Widgets
Welcome to ShepHertz Product line forum, where you can ask questions and receive answers from the community. You can also reach out to us on support@shephertz.com
...