簡體   English   中英

驗證是否在ajax請求中發送了Google電子郵件

[英]Verify if Google Email is being sent in ajax request

我一直在讀一些成角度的文章,我真的很新。 我被要求為我所在的公司開發此應用,用戶需要使用他們的Google憑據登錄。

到目前為止,這是蛋糕,但我認為自己過於復雜。 到目前為止,這是我所擁有的:

  • Google Button登錄
  • 回調函數,將電子郵件保存到變量並發送AJAX請求以將其保存在數據庫中並開始會話

問題:

  • Google Api表示找不到回調函數。 我敢肯定這確實很簡單,但是似乎找不到。

這是我相關的角度代碼:

app.controller('LoginController', function($scope){
        $scope.authResultErrorMessage = "";
        $scope.showAuthResultErrorMessage = false;
        $scope.userEmail = "";
        $scope.handleSignIn = function(authResult){
            console.log("I was called!");
            if(authResult){
                if(authResult['error'] != undefined){
                    $scope.showAuthResultErrorMessage = true;
                    $scope.authResultErrorMessage = "Hubo un error. Intente de nuevo. Si este error persiste, ponganse en contacto con el director de IT.";
                } else if(authResult['error'] === undefined){
                    gapi.client.load('plus', 'v1', loadProfileFromGoogle);
                }
            }
        };
        $scope.loadProfileFromGoogle = function(){
            var request = gapi.client.plus.people.get( {'userId' : 'me'} );
            request.execute(getEmail);
            console.log(request);
        };
        $scope.getEmail = function(obj){
            $scope.userEmail = obj['emails'].filter(function(v){
                return v.type === 'account';
            })[0].value;
            console.log($scope.userEmail);
            $scope.verifyUser($scope.userEmail);
        };
        $scope.verifyUser = function(email){
            $.get('controllers/verifyUser.php', {
                data: email,
            }, function(result){
                    console.log(result);
                    JSON.parse(result);
            });
        };
    });

這是html代碼:

<div ng-controller="LoginController as login">
    <span id="signin-button">
        <span
            class="g-signin"
            data-callback="login.handleSignIn"
            ng-click="login.handleSignIn"
            data-approvalprompt="force"
            data-clientid="201763423039-kdogu6vm1fgsj6hdnafn5k9otkj9ekjj.apps.googleusercontent.com"
            data-cookiepolicy="single_host_origin"
            data-requestvisibleactions="http://schemas.google.com/AddActivity"
            data-scope="https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/plus.profile.emails.read">
        </span>
    </span>   
</div>

當我單擊按鈕時,一切順利進行,我登錄了,但是在控制台上,顯示以下消息:

找不到名為“ login.handleSignIn”的回調函數cb = gapi.loaded_0:484

我已經花了幾個小時的時間來試圖弄清楚為什么不調用該函數的原因,或者就目前而言,如果不存在語法錯誤的話,我就已經不知道該調用什么函數了。 如果有人可以提供幫助,我將非常感激。

為什么不嘗試使用此指令:

http://jeradbitner.com/angular-directive.g-signin/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM