Docs

    RedSkyLab.Login

    namespace RedSkyLab.Login
    {
        /// <summary>
        /// This class contains all functionality for user log in/sign up.
        /// Instance can be accessed via SdkMain.Login
        /// </summary>
        public interface ILoginManager
        {
            /// <summary>
            /// Initialization. Should be called before any other methods in this class
            /// User will be logged in silently if he was logged in previous game session
            /// </summary>
            /// <param name="listener">User login/logout event handler</param>
            void Init(ILoginListener listener);

            /// <summary>
            /// Shows login/sign up dialog
            /// </summary>
            void LogIn();

            /// <summary>
            /// Login via Facebook
            /// </summary>
            /// <param name="userAccessToken">Facebook user access token</param>
            void FacebookLogin(string userAccessToken);

            /// <summary>
            /// Logout
            /// </summary>
            void LogOut();

            /// <summary>
            /// Is user logged in?
            /// </summary>
            bool IsLoggedIn();

            /// <summary>
            /// Get user profile
            /// </summary>
            /// <returns>User profile is user logged in or null</returns>
            IUserProfile GetUserProfile();

            /// <summary>
            /// Download user picture
            /// </summary>
            ITask<Texture2D> DownloadAvatar();
        }
        
        /// <summary>
        /// User login/logout event handler
        /// </summary>
        public interface ILoginListener
        {
            /// <summary>
            /// Called when user successfully logged in on <see cref="ILoginManager.LogIn"/>
            /// or authomatically on <see cref="ILoginManager.Init"/>
            /// </summary>
            /// <param name="userProfile">Ссылка на профиль игрока</param>
            void OnUserLoggedIn(IUserProfile userProfile);

            /// <summary>
            /// Called when user logged out
            /// </summary>
            void OnUserLoggedOut();

            /// <summary>
            /// Login failed on <see cref="ILoginManager.LogIn"/>
            /// </summary>
            /// <param name="errorMessage">Error message</param>
            void OnLoginFailed(string errorMessage);
        }
        
        /// <summary>
        /// User profile
        /// </summary>
        public interface IUserProfile
        {
            string FirstName { get; }

            string LastName { get; }

            string Username { get; }
        }
    }