コード例 #1
0
ファイル: ApiManager.cs プロジェクト: Laodhy/ClassroomManager
        public async Task <bool> Authenticate(UserAuthentification user)
        {
            if (user == null || !IsConnected)
            {
                return(false);
            }

            var serializedItem = JsonConvert.SerializeObject(user);

            HttpResponseMessage response = await _client.PostAsync(
                ApiConstantes.AuthenticateUser,
                new StringContent(serializedItem, Encoding.UTF8, "application/json")
                );

            if (response.IsSuccessStatusCode)
            {
                //Set the current User for the application
                string content = await response.Content.ReadAsStringAsync();

                User userAuth = JsonConvert.DeserializeObject <User>(content);
                userAuth.Password = user.Password;
                DataManager.Instance.CurrentUser = userAuth;

                _client.DefaultRequestHeaders.Clear();
                _client.DefaultRequestHeaders.Authorization =
                    new AuthenticationHeaderValue("Bearer", userAuth.AccessToken);
            }
            else
            {
                _client.DefaultRequestHeaders.Clear();
                DataManager.Instance.CurrentUser = null;
            }

            return(response.IsSuccessStatusCode);
        }
コード例 #2
0
        protected override async void OnResume()
        {
            if (DataManager.Instance.CurrentUser != null)
            {
                UserAuthentification user = new UserAuthentification()
                {
                    Email    = DataManager.Instance.CurrentUser.Email,
                    Password = DataManager.Instance.CurrentUser.Password
                };

                if (!await ApiManager.Instance.Authenticate(user))
                {
                    MainPage = new NavigationPage(new LoginPage());
                }
            }
        }