2016-06-23 17 views
4

Ich versuche Google auth in angualjs zu implementieren. Aber ich recherchierte und bekomme Code in Javascript.Angularjs + Google oauth2 + get id_token

Code:

<html lang="en"> 
    <head> 
     <meta name="google-signin-scope" content="profile email"> 
     <meta name="google-signin-client_id" content="148699057185-ug1ge86g4dn4uffffekth3rb7382cl2333323238fau.apps.googleusercontent.com"> 
     <script src="https://apis.google.com/js/platform.js" async defer></script> 
    </head> 
    <body> 
     <div class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div> 
     <script> 

      function onSignIn(googleUser) { 
       // Useful data for your client-side scripts: 
       var profile = googleUser.getBasicProfile(); 
       console.log("ID: " + profile.getId()); 
       // Don't send this directly to your server! 
       console.log("Name: " + profile.getName()); 
       console.log("Image URL: " + profile.getImageUrl()); 
       console.log("Email: " + profile.getEmail()); 
       // The ID token you need to pass to your backend: 
       var id_token = googleUser.getAuthResponse().id_token; 
       console.log("ID Token: " + id_token); 

       alert(id_token); 

       // All HTML5 Rocks properties support CORS. 

      } 
     </script> 
    </body> 
</html> 

Ich erhalte die id_token Alarm.

Aber ich muss in angularjs konvertieren.

Ich habe versucht, Angularjs zu implementieren, aber es funktioniert nicht.

Bitte jemand mir helfen.

Erwarten: Ich muss nur ID_Token (nicht Zugriff Token) von Google OAUTH in angularjs erhalten.

Antwort

1

Ich denke, Sie sollten angular-google-plus Modul versuchen. Es ist ein vollständiges kantiges Modul, das den Login mit der Google+ API behandelt.

Hier ist ein DEMO (Vergessen Sie nicht Ihre Client-ID in den Code einzufügen.)

Beispiel Nutzung:

var app = angular.module('app', ['googleplus']); 

app.config(['GooglePlusProvider', function(GooglePlusProvider) { 
    GooglePlusProvider.init({ 
     clientId: 'YOUR_CLIENT_ID', 
     apiKey: 'YOUR_API_KEY' 
    }); 
}]); 

app.controller('AuthCtrl', ['$scope', 'GooglePlus', function ($scope, GooglePlus) { 
    $scope.login = function() { 
     GooglePlus.login().then(function (authResult) { 
      console.log(authResult); 

      GooglePlus.getUser().then(function (user) { 
       console.log(user); 
      }); 
     }, function (err) { 
      console.log(err); 
     }); 
    }; 
}]); 

Ich denke authResult Objekt sollte enthalten, was Sie wollen.

+0

Entschuldigung für die späte Antwort. Ich erwarte das authResult einschließlich id_token. aber jetzt bekommt es kein id_token – RSKMR