6 Stimmen

Google-Authentifizierungs-API: So erhalten Sie die Google Mail-Adresse des Benutzers

Ich habe die Google-Authentifizierung-API (AuthSub) studiert... Meine Frage ist, wie erhalte ich die Kontoinformationen des Benutzers (zumindest seine Google Mail-Adresse), nachdem die Authentifizierung abgeschlossen ist?

Denn derzeit ist alles, was ich zurück aus dem Authentifizierungsprozess erhalten, ein Token, die mir den Zugriff auf welche jemals Google-Dienst, den ich im Bereich angegeben haben, aber es gibt keine einfache Möglichkeit, sogar die Login-ID des Benutzers (Gmail-Adresse) zu erhalten, so weit wie ich sagen kann...


Wenn ja, welcher Google-Dienst ermöglicht mir den Zugriff auf die Informationen des Nutzers?

0 Stimmen

Das will ich auch wissen! Aargh :-)

0 Stimmen

Großartiges Tutorial und Skript, um die Benutzerauthentifizierung von Google Mail zu erhalten und auf grundlegende Daten zuzugreifen 9lessons.info/2011/07/anmelden-mit-google-account.html

4voto

bugBurger Punkte 6882

Die Google-Authentifizierungs-API ist ein tokenbasiertes System zur Authentifizierung eines gültigen Nutzers. Es bietet keine andere Schnittstelle, über die Informationen über den Kontoinhaber an den Autor zurückgegeben werden können.

2voto

Joe Skora Punkte 14359

Mit den GData-Diensten der Google AppEngine können Sie den Nutzer auffordern, Ihnen Zugriff auf seine Google Mail, seinen Kalender, Picasa usw. zu geben. Probieren Sie es aus aquí .

1 Stimmen

Seite nicht gefunden :P @Joe Skora

2voto

StasM Punkte 10085

Sie können einige der Daten über die OpenID-API mit der Axtverlängerung. Wenn Sie sich mit anderen Methoden authentifizieren, ist das Beste, was ich gefunden habe, der Aufruf von https://www-opensocial.googleusercontent.com/api/people/@me/@self und es werden Ihr Name, Ihre E-Mail-Adresse und Ihr Foto angezeigt. Achten Sie darauf, dass Sie http://www-opensocial.googleusercontent.com/api in den Geltungsbereichen bei der Authentifizierung.

0 Stimmen

Auf diese Weise wird die E-Mail nicht zurückgeschickt

0voto

user2058632 Punkte 1
    [ValidateInput(false)]
    public ActionResult Authenticate(string returnUrl)
    {
        try
        {
            logger.Info("" + returnUrl + "] LoginController : Authenticate method start  ");
            var response = openid.GetResponse();
            if (response == null)
            {
                try
                {
                    string discoveryuri = "https://www.google.com/accounts/o8/id";
                    //OpenIdRelyingParty openid = new OpenIdRelyingParty();
                    var fetch = new FetchRequest();// new 
                    var b = new UriBuilder(Request.Url) { Query = "" };
                    var req = openid.CreateRequest(discoveryuri, b.Uri, b.Uri);
                    fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
                    fetch.Attributes.AddRequired(WellKnownAttributes.Name.FullName);
                    req.AddExtension(fetch);
                    return req.RedirectingResponse.AsActionResult();
                }
                catch (ProtocolException ex)
                {
                    logger.ErrorFormat(" LoginController : Authenticate method has error, Exception:" + ex.ToString());
                    ViewData["Message"] = ex.Message;
                    return View("Login");
                }
            }
            else
            {
                logger.Info("" + returnUrl + "] LoginController : Authenticate method :when responce not  null  ");
                switch (response.Status)
                {
                    case AuthenticationStatus.Authenticated:
                        logger.Info("" + response.Status + "] LoginController : Authenticate method : responce status  ");
                        var fetchResponse = response.GetExtension<FetchResponse>();
                        string email = fetchResponse.GetAttributeValue(WellKnownAttributes.Contact.Email);
                        string userIPAddress = HttpContext.Request.UserHostAddress;
                        SecurityManager manager = new SecurityManager();                            
                        int userID = manager.IsValidUser(email);

                        if (userID != 0)
                        {
                            ViewBag.IsFailed = "False";
                            logger.Info("" + userID + "] LoginController : Authenticate method : user id id not null  ");
                            Session["FriendlyIdentifier"] = response.FriendlyIdentifierForDisplay;
                            Session["UserEmail"] = email;

                            FormsAuthentication.SetAuthCookie(email, false);

                            WebSession.UserEmail = email;
                            WebSession.UserID = userID;

                            UserManager userManager = new UserManager();
                            WebSession.AssignedSites = userManager.GetAssignedSites(userID);

                            if (!string.IsNullOrEmpty(returnUrl))
                            {
                                logger.Info("" + returnUrl + "] LoginController : Authenticate method : retutn url not null then return Redirect   ");
                                return Redirect(returnUrl);
                            }
                            else
                            {
                                logger.Info("" + returnUrl + "] LoginController : Authenticate method : retutn url null then return RedirectToAction   ");
                                //
                                return Redirect("/Home");
                            }
                        }
                        else
                        {
                            ViewBag.IsFailed = "True";
                            logger.Info("" + returnUrl + "] LoginController : Authenticate method :user id null   ");
                            if (!string.IsNullOrEmpty(returnUrl))
                            {
                                logger.Info("" + returnUrl + "] LoginController : Authenticate method :and return Redirect   ");
                                return Redirect(returnUrl);
                            }
                            else
                            {
                                logger.Info("" + returnUrl + "] LoginController : Authenticate method :and return RedirectToAction   ");

                                return View("Index");

                            }
                        }

                    case AuthenticationStatus.Canceled:
                        logger.Info("" + response.Status + "] LoginController : Authenticate method : AuthenticationStatus.Canceled  and return view  ");
                        ViewData["Message"] = "Canceled at provider";
                        return View("Login");
                    case AuthenticationStatus.Failed:
                        logger.Info("" + response.Status + "] LoginController : Authenticate method : AuthenticationStatus.Failed and return view   ");
                        logger.Error(response.Exception.Message);
                        ViewData["Message"] = response.Exception.Message;
                        return View("Login");
                }

            }
            logger.Info("" + returnUrl + "] LoginController : Authenticate method end and return  EmptyResult");
            return new EmptyResult();
        }
        catch (Exception ex)
        {
            logger.Error(" LoginController : Authenticate method ", ex);
            throw;
        }
    }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X