示例#1
0
    public static IEnumerator SignInWithEmailAndPassword(string email, string password, Action <string, string> onSignIn)
    {
        var request = new SignInWithEmailAndPasswordRequest
        {
            email    = email,
            password = password,
        };

        string payload = JsonConvert.SerializeObject(request);

        using (var www = PostRequest(SignInURL, payload))
        {
            yield return(www.SendWebRequest());

            if (www.isNetworkError || www.isHttpError)
            {
                var errorResponse = JsonConvert.DeserializeObject <ErrorResponse>(www.downloadHandler.text);
                Debug.LogFormat("Error: {0} Code: {1}", errorResponse.error.message, errorResponse.error.code);
            }
            else
            {
                var signInResponse = JsonConvert.DeserializeObject <SignInWithEmailAndPasswordResponse>(www.downloadHandler.text);
                onSignIn(signInResponse.refreshToken, signInResponse.idToken);
            }
        }
    }
示例#2
0
        public async Task <ResultWrapper <LoginOutput> > Handle(LoginCommand request, CancellationToken cancellationToken)
        {
            ResultWrapper <LoginOutput>       loginResult = new ResultWrapper <LoginOutput>();
            SignInWithEmailAndPasswordRequest singInReq   = new SignInWithEmailAndPasswordRequest()
            {
                email             = request.Username,
                password          = request.Password,
                returnSecureToken = true
            };
            ResultWrapper <SignInWithEmailAndPasswordResponse> signInResult = await _fireBaseTool.SignInWithEmailAndPassword(singInReq);

            if (!signInResult.Status)
            {
                loginResult.Status  = false;
                loginResult.Message = signInResult.Message;
                return(loginResult);
            }

            loginResult.Status = true;
            loginResult.Result = new LoginOutput()
            {
                Token        = signInResult.Result.idToken,
                RefreshToken = signInResult.Result.refreshToken
            };

            return(loginResult);
        }
示例#3
0
        public async Task <ResultWrapper <SignInWithEmailAndPasswordResponse> > SignInWithEmailAndPassword(SignInWithEmailAndPasswordRequest request)
        {
            ResultWrapper <SignInWithEmailAndPasswordResponse> result = new ResultWrapper <SignInWithEmailAndPasswordResponse>()
            {
                Result = new SignInWithEmailAndPasswordResponse()
            };

            HttpContent content = new StringContent(JsonConvert.SerializeObject(request), System.Text.Encoding.UTF8, "application/json");;
            string      action  = SignInWithPassword_URL.Replace("API_KEY", _appSettings.FireBase.ApiKey);

            HttpResponseMessage response = await _httpClient.PostAsync(BASE_URL + action, content);

            string strResponse = await response.Content.ReadAsStringAsync();

            result.Result = JsonConvert.DeserializeObject <SignInWithEmailAndPasswordResponse>(strResponse);
            result.Status = !string.IsNullOrEmpty(result.Result.idToken);
            if (!result.Status)
            {
                result.Message = "Username or Password is invalid";
            }
            return(result);
        }