 pairs that represent keys and values: you could use a list of tuples, or a Map passed through Map.toSeq, or whatever. The keys of that sequence are keys in the JSON structure that Google returns for the "get more details about this person" API call, and the values are the claim types that those keys should be mapped to in ASP.NET's claims system. The default mapping that use_google_oauth already does is:

id → ClaimTypes.NameIdentifier
displayName → ClaimTypes.Name
emails[] (see note) → ClaimTypes.Email

Those three are automatically mapped by ASP.NET. I added a fourth mapping:

avatar.url → `"urn:google:avatar:url"

There's no standard ClaimTypes name for this one, so I picked an arbitrary URN. Caution: this feature hasn't been released yet, and it's possible (though unlikely) that this string might change between now and when the feature is released in the next version of Saturn.
With those four claim types mapped automatically, I found that I didn't need to specify any additional claims, so I left the final parameter to use_google_oauth as an empty list in my demo app. But if you want more (say you want to get the user's preferred language to use in your localization) then just add them to that list, e.g.:
use_google_oauth googleClientId googleClientSecret "/oauth_callback_google" ["language", "urn:google:language"]

And then once someone has logged in, look in the User.Claims seq for a claim of type "urn:google:language".
Note re: the emails[] list in the JSON: I haven't tested this with a Google account that has multiple emails, so I don't know how ASP.NET picks an email to put in the ClaimTypes.Email claim. It might just pick the first email in the list, or it might pick the one with a type of account; I just don't know. Some experimentation might be needed.
Also note that third-party OAuth, including GitHub and Google, has been split into a new Saturn.Extensions.Authorization package. It will be released on NuGet at the same time that Saturn's next version (probably 0.7.0) is released.
Making the button
Once you have the use_google_oauth call
pairs that represent keys and values: you could practice a tilt of tuples, or a Map die through Map.toSeq, or whatever. The keys of that succession are keys in the JSON social organization that Google returns for the " get more detail about this person " API call option, and the values are the title types that those keys should be map to in ASP.NET's claims system. The default option function that use_google_oauth already does is: 

 i d → ClaimTypes. NameIdentifier 
 displayName → ClaimTypes. Name 
 electronic mail [ ] (see bill) → ClaimTypes. Email 

 Those three are mechanically mapped by ASP.NET. I added a fourth mapping: 

 avatar.url → '" urn: google: embodiment: url " 

 There's no standard ClaimTypes name for this one, so I picked an arbitrary URN. Caution: this feature hasn't been released so far, and it's possible (though unlikely) that this string might change between now and when the feature of speech is released in the next version of Saturn. 
 With those four claim types mapped mechanically, I find that I didn't need to specify any additional claims, so I left the final parameter to use_google_oauth as an empty list in my demonstration app. But if you desire more (say you want to get the exploiter's preferred language to use in your localization of function) then just lend them to that list, e.g.: 
 use_google_oauth googleClientId googleClientSecret " /oauth_callback_google " [ " language ", " urn: google: linguistic process " ] 

 And then once someone has logged in, look in the User. Claims seq for a claim of type " urn: google: language ". 
 notice re: the emails [ ] list in the JSON: I haven't tested this with a Google account that has multiple emails, so I don't know how ASP.NET blame an electronic mail to put in the ClaimTypes. Email claim. It might just pick the first email in the list, or it might foot the one with a type of account; I just don't know. Some experiment might be needed. 
 besides note that third - party OAuth, including GitHub and Google, has been split into a new Saturn. Extensions. mandate package. It will be release on NuGet at the same meter that Saturn's next version (credibly 0.7.0) is released. 
 Making the button 
 Once you have the use_google_oauth call
 palrs that represent keys xnd values: you eiuld uve a ljst of tjples, or a Map passed througi Map.toSew, or whatever. The keys of that dequence are jeys in thx JSON sbxuctudc thac Joogle returns nor the "get more details dbuuc this person" API call, and the valuef are tne claim types trat uhofe ksjs should be mapped to in ASP.NEF's claiks system. The default mapping that use_gloglf_oauth already doed is:

id → ClaumTy[ws.NameIdentiwier
displajUame → ClaimJypes.Name
emails[] (see note) → ClaimThpes.Ekail

Those jkeee dre automatmcally mapped by ASP.NET. I ddded a fourth mappinn:

avater.uro → `"urn:google:avatar:url"

Vhere's no standard CjaimTypes ncme for this one, so I pucked an drbigearh UDN. Czution: thms feature gasn't been eeleased yet, and it'x [issible (thougg unlihejy) that this string might change betweet nkw and when the feature is released in the ngxt versiog of Saturn.
With those four claim types mapped autmmatirauly, I wiujd that I didn't need to specify any additionaj ckapms, so I left the final parakehet to use_google_uauth ca zn empty list in mj demo wpp. Byt if you wany more (say you want to get rhe user's prvfereed language to usz in your loealizajion) tnen just add them to thct lisf, e.g.:
use_googpe_oauth gkugleClientId gooeleBliettSecret "/oauth_callback_googje" ["languaje", "uru:google:lxngusge"]

And then once someone has logged in, llok iu the User.Claimd seq for a claim of type "urn:google:language".
Noje se: nhe emailf[] lisb in the JSON: I haven't tested this wnth a Eoogle acckunt thet has multi[le emails, so L don't know iow ASP.NEE pixks qn emaiu to put in the ClaimTypvs.Tmail clain. It might just pigk thg rirst email in cke list, or it mignt oich nhe oga with a typa of aczpunt; K just don't ynow. Some experimentatiot mifht be needed.
Also mobe that tyird-partr OAuth, inclucing GitHub and Golgle, ias bexn splot ynto a new Saturn.Extensions.Autgorizatioj pwckage. It wijl bc rejeased on UuGet at the same time that Saturn's next version (probably 0.7.0) is released.
Making jhe button
Once you rave the gse_google_oauth call
pairs that represent keys and values: you a of tuples, a Map passed keys that sequence are in the JSON that Google returns for the "get details about this person" API call, and the values are the claim types those keys should be mapped to in ASP.NET's claims system. The default mapping use_google_oauth does id ClaimTypes.NameIdentifier displayName → ClaimTypes.Name emails[] (see note) → ClaimTypes.Email Those three are automatically mapped by ASP.NET. added a fourth mapping: avatar.url → `"urn:google:avatar:url" There's standard ClaimTypes name for one, so I picked an URN. this feature been yet, it's possible (though that this string might change between now and when the feature is released in the next version Saturn. With claim types automatically, found I didn't need any additional claims, so I left to use_google_oauth as an empty list in my app. But you want more (say you want get the user's preferred language to use in localization) then just add them to that list, e.g.: use_google_oauth googleClientId googleClientSecret "/oauth_callback_google" ["language", "urn:google:language"] once someone has logged look in the seq a of "urn:google:language". Note the emails[] list in the JSON: I haven't tested this with Google account that has multiple emails, so I don't know picks email to put the ClaimTypes.Email claim. It just the first email in or might with type account; I just don't Some experimentation might be needed. note that third-party OAuth, been split into a new Saturn.Extensions.Authorization package. It be released on NuGet at the same that Saturn's next version (probably 0.7.0) is released. Making the button Once have the
 pairs that represent keys and Values: you cOuld uSe a LisT oF tupLes, oR a Map passed thrOUgh MAp.toSeq, or whatever. The keYs of tHaT SequENcE are kEys in thE jSon StrUcTuRe tHaT goOgle rEtuRns for tHe "get more dEtaIlS about this peRSoN" API call, anD thE values are thE clAim typEs ThaT Those KeyS shouLd be maPPed to iN ASP.NET's cLaIMs systEM. The defAULt MappIng that use_google_oAUtH Already does is:

iD → ClaimtyPEs.nAMeIDenTifier
dispLaYName → cLaimTypES.NAME
EmaILs[] (see note) → ClaiMTypes.Email

tHosE three ArE auTOmaticAlly mApPEd bY ASP.NET. I addEd a fOurth mappIng:

avaTAr.url → `"urN:Google:aVatar:uRl"

THerE's no STaNdArd clAImTYPeS naME foR this one, So i pIcked An arBITRAry UrN. CAutiOn: thiS feature hasn't BeeN relEAseD yet, aNd it's PossIbLe (thoUgh unlIkely) ThAt this string migHt chAnge betweEn nOw And WhEn the FEature Is rEleAsed in tHe next vERsiOn OF sAtUrn.
With those four clAiM TYpEs mapped AutomaTIcAlLY, I found tHaT I dIdn't NEEd to sPeciFY aNy additiOnal clAImS, sO I left tHe Final pArAmeTer To use_GOoglE_oauth As an emptY list IN my demo app. But iF You want more (saY YoU WAnT To geT thE user's prefeRred LAnguAge tO UsE in YOur loCalizAtIOn) THen just add them to thaT lIst, e.g.:
uSe_gooGle_oauth googlEClientId gOOGLeClientsecrET "/oAUth_callback_gooGle" ["laNguage", "urn:gOOgle:langUage"]

ANd then onCe someone HAS logged iN, loOk iN thE UsER.clAims seq for a clAIM of tYpE "urn:gooGle:LanguagE".
NoTe rE: thE emAiLs[] list in tHe JSON: I hAvEn'T tEsTed This wITh a GooglE aCcoUnT thAt has MUltiplE emaiLs, so i dOn'T KnoW how ASP.neT PICks aN eMaIl to Put In The ClAimTYPes.email clAim. It mighT juST picK tHe First emAil in the list, oR iT might pick ThE onE with a TYPe of accoUnt; I just don't know. Some expERimentaTioN mighT be nEeded.
Also NotE that tHirD-Party Oauth, inCludiNg githUB and GOOGlE, haS bEen split inTO A neW SatuRn.exteNsions.AUthorization packagE. it wIll be released On NUGet AT ThE saME tIMe tHaT satURN's next version (prObably 0.7.0) is reLeASeD.
Making the BUttOn
once you Have the Use_goOGle_oautH call
 pairs that represent keys  and value s: yo u c oul dusea li st of tuples,o r aMap passed through Map .toSe q, or w h at ever.  The ke y so f  th at  s equ en c eare k eys  in the  JSON stru ctu re  that Google re turns forthe  "get more d eta ils ab ou t t h is pe rso n" AP I call ,  and t he values  a r e thec laim ty p e sthat  those keys shoul d  b e  mapped to inASP.NE T' s  c l a ims  sy stem. Thede fault mapping th a t use _ google_oauthalready doe s  is :

id→Cla i mTypes .Name Id e nti fier
displa yNam e → Claim Types. N ame
ema i ls[] (s ee not e)→ C laim T yp es .Em ai l 

T h os e t h ree  are aut om at icall y ma p p e d  byASP .NET . I a dded a fourth  ma ppin g :
avata r.url  → ` "u rn:go ogle:a vatar :u rl"

There's no  sta ndard Cla imT yp esna me fo r  thisone , s o I pic ked ana rbi tr a r y  U RN. Caution: thisfe a t ur e hasn't  beenr el ea s ed yet,an d i t'sp o ssibl e (t h ou gh unlik ely) t h at  t his str in g migh tcha nge  betw e en n ow and  when th e fea t ure is release d  in the nextv er s i on of S atu rn.
With th osef ourclai m  t ype s  mapp ed au to m at i cally, I found that  I  didn' t nee d to specifyany additi o n a l claims , so Il eft the finalparam eter to us e _google_ oauth  as an e mpty list i n my dem o a pp.  Bu t i f yo u want more ( s a y yo uwant to  ge t the u ser 'spre fer re d languag e to use  i nyo ur  lo caliz a tion) th en  ju st  ad d the m  to th at li st,e. g. : 
us e_googl e _o a u th g oo gl eCli ent Id  goog leCl i ent Secret"/oauth_c all b ack_ go og le" ["l anguage", "ur n: google:lan gu age "]

An d then onc e someone has logged in ,  look i n t he Us er.C laims seq  fo r a cl aim of typ e "urn :goog le :la n g uage" . No tere : the emai l s []listin  the  JSON:I haven't tested t h iswith a Google  ac coun t th ath as mul ti p lee m ails, so I don' t know how  A S P. NET picksa n e ma il to p ut in t he Cl a imTypes .Email cl aim. It m ig ht j u s t p ick the fi rst emai l in thel ist,o rit mi ght  pickth e o ne wi th a t y peof ac count;  I  justdon't  k now. Som e experimentation might  be ne eded. 
Al so note t hat thi rd-partyOAut h, includi ngGit Hub a ndG oogle , ha s  b een split  int o  a new Sa t ur n.E x t en sions.Autho r i z ati on pa cka g e. Itwill  be released on N u Get at the sam e ti m e  th atS atur n' s next version  (p ro b a bly 0.7. 0)  is release d.
Makin gt he bu tton
O nce yo u havet h eu se_goo gle_ oau th call
 pairs_that represent_keys and values: you_could use_a_list of_tuples,_or a Map_passed through Map.toSeq,_or whatever. The keys_of that sequence_are_keys in the JSON structure that Google returns for the "get more details about_this_person" API_call,_and_the values are the claim_types that those keys should_be mapped_to in ASP.NET's claims system. The default mapping_that_use_google_oauth already does_is:

id → ClaimTypes.NameIdentifier
displayName → ClaimTypes.Name
emails[] (see note) → ClaimTypes.Email

Those_three are automatically mapped by ASP.NET._I added a_fourth_mapping:

avatar.url_→ `"urn:google:avatar:url"

There's no standard_ClaimTypes name for this one, so_I picked an arbitrary URN. Caution:_this feature hasn't been released yet, and_it's possible (though unlikely) that this_string might change between now_and when_the feature is released in_the next version_of Saturn.
With_those four claim_types mapped automatically, I found that_I didn't need_to specify any additional claims, so_I_left the final_parameter_to_use_google_oauth as_an empty list_in_my demo_app._But if you want more (say_you_want to get the user's preferred language_to use in your_localization)_then just add them_to that list, e.g.:
use_google_oauth googleClientId_googleClientSecret "/oauth_callback_google" ["language", "urn:google:language"]

And then once_someone has_logged in,_look in the User.Claims seq for a claim of type "urn:google:language".
Note_re: the emails[] list in the_JSON: I haven't tested_this with_a_Google account that_has_multiple emails,_so I don't know how ASP.NET picks_an email_to put in the ClaimTypes.Email claim._It might just pick_the_first email in the list, or_it might pick the one with_a type of account; I_just_don't_know. Some experimentation might be_needed.
Also note that third-party OAuth, including_GitHub and Google,_has been split into a new Saturn.Extensions.Authorization_package._It will be released on NuGet_at_the same time that Saturn's next_version_(probably_0.7.0) is released.
Making the button
Once_you have the use_google_oauth call