From 363f56f895cfaf10021e2ade7ba0434e1e129bbf Mon Sep 17 00:00:00 2001 From: wgjak47 Date: Wed, 4 Aug 2021 22:51:58 +0800 Subject: [PATCH] Add IDToken for google provider --- providers/google/google.go | 5 ++--- providers/google/session.go | 2 ++ 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/providers/google/google.go b/providers/google/google.go index dcc79245b..cc55f3fd7 100644 --- a/providers/google/google.go +++ b/providers/google/google.go @@ -86,6 +86,7 @@ func (p *Provider) FetchUser(session goth.Session) (goth.User, error) { Provider: p.Name(), RefreshToken: sess.RefreshToken, ExpiresAt: sess.ExpiresAt, + IDToken: sess.IDToken, } if user.AccessToken == "" { @@ -139,9 +140,7 @@ func newConfig(provider *Provider, scopes []string) *oauth2.Config { } if len(scopes) > 0 { - for _, scope := range scopes { - c.Scopes = append(c.Scopes, scope) - } + c.Scopes = append(c.Scopes, scopes...) } else { c.Scopes = []string{"email"} } diff --git a/providers/google/session.go b/providers/google/session.go index 47df1601b..f2791df59 100644 --- a/providers/google/session.go +++ b/providers/google/session.go @@ -15,6 +15,7 @@ type Session struct { AccessToken string RefreshToken string ExpiresAt time.Time + IDToken string } // GetAuthURL will return the URL set by calling the `BeginAuth` function on the Google provider. @@ -40,6 +41,7 @@ func (s *Session) Authorize(provider goth.Provider, params goth.Params) (string, s.AccessToken = token.AccessToken s.RefreshToken = token.RefreshToken s.ExpiresAt = token.Expiry + s.IDToken = token.Extra("id_token").(string) return token.AccessToken, err }