我添加了以下作用域来访问来自用户的数据
#region Google
var googleAuthenticationOptions = new GoogleOAuth2AuthenticationOptions()
{
ClientId = ConfigurationManager.AppSettings["Google_AppID"],
ClientSecret = ConfigurationManager.AppSettings["Google_AppSecret"]
};
googleAuthenticationOptions.Scope.Add("profile");
googleAuthenticationOptions.Scope.Add("email");
googleAuthenticationOptions.Provider = new GoogleOAuth2AuthenticationProvider()
{
OnAuthenticated = async context =>
{
//context.Identity.AddClaim(new Claim("birthday", context.User.GetValue("birthday").ToString()));
string claimType;
bool bAddClaim = false;
foreach (var claim in context.User)
{
claimType = string.Empty;
bAddClaim = false;
switch (claim.Key)
{
case "given_name":
claimType = "FirstName";
bAddClaim = true;
break;
case "family_name":
claimType = "LastName";
bAddClaim = true;
break;
case "gender":
claimType = "gender";
bAddClaim = true;
break;
}
if (bAddClaim)
{
string claimValue = claim.Value.ToString();
if (!context.Identity.HasClaim(claimType, claimValue))
context.Identity.AddClaim(new System.Security.Claims.Claim(claimType, claimValue, "XmlSchemaString", "Google"));
}
}
}
};
在上下文调试时。用户在foreach循环中,通过设置断点,我得到了以下信息:
{ "sub": "101111724115925537597", "name": "Alok Nath", "given_name": "Alok", "family_name": "Nath", "profile": "https://plus.google.com/101111724115925537597", "picture":"https://lh3.googleusercontent.com/XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/ photo.jpg", "email": "aloknathbabuji786@gmail.com", "email_verified": true, "gender": "male", "locale": "en" }
因此,即使在添加“配置文件”范围后,我也不会将生日作为返回值的一部分。我已确保该配置文件将生日可见性设置为公开,即对所有人可见。为了从Google检索生日,我需要执行任何特定范围或特定设置吗?
或者有什么办法解决这个问题请贴出解决方案
我认为您需要将范围设置为 https://www.googleapis.com/auth/plus.login,以便获得此堆栈溢出用户建议的出生日期:
使用谷歌OAuth API检索出生日期和婚姻状况
更多信息也可以在这里找到:https://developers.google.com//api/oauth#plus.login
问题:我在从API调用中获取用户的生日方面遇到困难,我是OAuth的新手。 < b >遵循的步骤:(遵循了使用google登录所需的所有步骤)< br> 1 .创建了一个应用程序。< br> 2。已获得app_id和secret_key。< br> 3。没有利用SDK,在php中实现了没有SDK的过程。< br> 4。通过调用< CODE > accounts[dot]Google[dot]com
我正在我的一个应用程序中使用谷歌登录。我找不到检索出生日期和性别的方法。有人能帮忙吗?这是我使用swift的代码
无法将应用程序推送到IBM云,原因是错误404表示暂存应用程序和跟踪日志...从日志缓存检索日志失败:意外状态代码404
问题内容: 这个问题已经在这里有了答案 : 在MySQL中获取一个人的年龄 (2个答案) 6年前关闭。 我在mysql中有一个表,它的出生日期列保存为unix时间戳(bigint)。 我想这样写查询: 和 3点是从出生日期算起年龄的函数。 我知道该函数,但是如果将出生日期另存为unix时间戳,那就不好了。 我能做些什么? 谢谢 问题答案: 从MySQL的日期和时间函数,我们可以结合,和。 假设这是
问题内容: 我有一个具有以下结构的模型 保存时其他一切都很好。它将另存为Firebase Realtime数据库 但是当我尝试检索它时,日期给出了以下错误- 我知道Firebase不支持Java Date对象,但是由于它将它们保存在地图中,如何从该地图中获取日期?在Firebase Android中,是否有任何适当的保存和检索日期的方法? 问题答案: 您可以将日期存储为纪元日期。您可以花很长的时间
问题内容: 我检索两个日期之间的数据,当我选择带有月份的日期时,它如何获得正确的结果,以及如何输出空列表视图,但是当我选择一个月以上的日期时,下面的输出空列表视图是我的代码 在这里我在DB类中声明变量 创建表语句 输入数据方法 在这里我访问ExEntry方法 在这里,我面临着这两个日期变量之间的问题 我像下面这样访问 问题答案: 有两种主要解决方案。所有解决方案的共同点是,必须以某种方式对包含日期