我只是想知道我需要的是身份网址,以便理论上将OpenID帐户附加到用户的帐户.
我的身份网址如下所示:https://www.google.com/accounts/o8/id?id = YGnyuGHMUmhUI98nuhUMhu98nuN.
OpenID 1.0和2.0之间有什么不同?
以防有人问:我正在使用Django + django-openid-consumer
谢谢你们=)
在深入研究实现这个特定设计的细节之前,我想要一些关于我是否正确接近它的建议/验证.我有Android的初学者知识,Python,GAE和OpenId的高级初学者.
我想在我的Android应用程序中启用登录功能,而无需在GAE中编写自己的身份验证系统.在应用程序内,用户应该能够以访客身份进行游戏而无法保存高分.如果用户希望保存他的高分,他将在Android设备上对他的Google帐户进行身份验证.在游戏结束时,经过身份验证的用户高分将通过Google App Engine上的游戏网络服务保存(与他的Google帐户相关联).用户还应该能够注销并将设备交给朋友,该朋友也可以登录,玩游戏并保存与她的Google帐户相关的高分.
谢谢您的帮助
使用openid.mode = checkid_setup我可以打开一个弹出窗口,如果用户没有登录,他将输入他的凭据.但如果他已经登录(浏览器cookie),则弹出窗口将立即显示并关闭.
在打开弹出窗口之前,我希望能够检查用户是否已经登录,如果是,请获取他的凭据.我认为应该用openid.mode = checkid_immediate完成, 但我无法弄清楚如何做到这一点.
如果有人可以提供一些javascript代码来实现这一点,那就太好了.
我正在外部网站上集成django-allauth用于facebook和谷歌登录.Facebook的工作几乎开箱即用.但是,有了Google,我收到了"社交网络登录失败"错误.
这是我做的:
1.Google API控制台:Web应用程序配置的客户端ID
Client ID: xxxxxxx.apps.googleusercontent.com
Email address: yyyyyyyy@developer.gserviceaccount.com
Client secret: xxx-yyy-zzz-111-222
Redirect URIs: http://learnbuzz.com/accounts/google/login/callback/
JavaScript origins: http://www.learnbuzz.com
Run Code Online (Sandbox Code Playgroud)
2.在Sites中处理learnbuzz.com网站
3.使用Google API控制台中的客户端ID和密码修复社交应用中的Google应用.
从文档和其他一些SO问题看来,这就是所需要的.
但是,当我使用谷歌登录时,我进入了accounts.google.com要求用户接受"应用程序共享基本用户信息和电子邮件"的页面.在我接受后,它为我提供了此网址的"社交网络登录失败":
http://learnbuzz.com/accounts/google/login/callback/?state=l1WdxOgr26bB&code=4/lGhX6Dum_FNnM3FE39TcULZb1UMX.0jX6biQfm3MfEnp6UAPFm0F0CIGMgQI
我错过了什么配置?
编辑:我不知道它是否重要但它需要浏览器相当一段时间才能抛出此错误.
我已经浏览了大量的 Google 文档和 SO Q/A,但没有运气。我想知道是否有人按照 Google 的建议成功地使用了 OpenId 到 OpenId Connect 的迁移。
这是我们以前的做法:
IAuthenticationResponse response = _openid.GetResponse();
if (response != null) {
//omitted for brevity
} else {
IAuthenticationRequest req = _openid.CreateRequest("https://www.google.com/accounts/o8/id");
req.AddExtension(new ClaimsRequest
{
Country = DemandLevel.Request,
Email = DemandLevel.Request,
Gender = DemandLevel.Require,
PostalCode = DemandLevel.Require,
TimeZone = DemandLevel.Require
});
req.RedirectToProvider();
}
Run Code Online (Sandbox Code Playgroud)
这是使用可追溯到几年前的 DotNetOpenAuth 版本完成的。由于 Google 已弃用 OpenId 身份验证,我们正尝试转向 OpenID Connect。这里的关键问题是:我可以以某种方式得到了OpenID标识符我的手(在形式https://www.google.com/accounts/o8/id?id=xyz使用最新版本的DotNetOpenAuth库或通过)有什么其他方法吗?
我已经尝试了最新的 DotNetOpenAuth,我可以让它工作,但它给了我一个新的 Id(这是预期的)。我还通过使用这个 URL(为了可读性而换行)尝试了 Javascript 方式:
https://accounts.google.com/o/oauth2/auth?
scope=openid%20profile%20email
&openid.realm=http://localhost/palkkac/
&client_id=//here is the client id I created …Run Code Online (Sandbox Code Playgroud) 我们正在尝试将 Google 的 OpenID Connect 用于商业网络应用程序,但担心用户会使应用程序保持打开状态,并且未经授权的用户将登录,因为用户仍然登录到 Google,因此 OpenID Connect 只是让他们直接登录。
我们尝试过使用这已被max_auth_age=0参数。max_ageOpenID Connect 取代。
我确实看到 admin.google.com 上的 Google App 控制面板通常会重新提示用户输入密码,而任何其他登录都不会。但查看授权 URL,我没有看到任何会触发此情况发生的内容。
这是我们当前的授权 URL:
https://accounts.google.com/o/oauth2/auth?prompt=select_account&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww....com%2Fauth%2Fuserinfo.profile&state=%2F&redirect_uri=https://www.foo.com/callback&response_type=token&client_id=...
也许如果我们添加一定的范围,可以触发谷歌进入高安全模式,但到目前为止我还没有发现任何东西。
我使用此文档在我的webapp中包含Google登录但是当我尝试在私有模式下从Safari加载网站时,我总是在控制台中出现以下错误
QuotaExceededError: DOM Exception 22: An attempt was made to add something to storage that exceeded the quota.
setItem4187590794-idpiframe.js:19:293
g4187590794-idpiframe.js:19:293
Ea4187590794-idpiframe.js:30
(funzione anonima)4187590794-idpiframe.js:33
onreadystatechange4187590794-idpiframe.js:11:477
Run Code Online (Sandbox Code Playgroud)
我知道在私人模式下的safari不允许写入localStorage但是没有任何解决方法让google登录也在私人模式下工作?
谢谢
简而言之:
“Self-Issued OpenID Provider”与“普通 OpenID Provider”(比如谷歌)究竟有什么区别?
我阅读了刚刚说的规范:
“OpenID Connect 支持自发行 OpenID 提供者 - 个人、自托管 OP,发行自签名 ID 令牌。自发行 OP 使用特殊的发行者标识符https://self-issued.me。“
所以我知道“自发行 OpenID 提供者”可以由我自己托管,并签署 ID 令牌。
不同之处在于,来自“普通 OpenID 提供者”的令牌使用受信任的证书进行签名(例如,因为它由已经在证书存储中的根 CA 证书签名),并且无需发送证书即可进行验证响应中的公钥 ?
最终有人可以澄清这一点,我将不胜感激。
提前致谢并致以最诚挚的问候!
openid google-openid openid-provider oauth-2.0 openid-connect
我们有一些用户无法通过 Google 连接到我们的平台。发生这种情况时,总是针对特定设备,但根据我们目前掌握的信息,并非所有设备类型都相同(有待确认)。
我们正在使用 ASP.NET Core(和 Identity Server 4)。
我们这边的错误是从 oauth 流返回后,由 ASP.NET 标识设置的相关 cookie 消失了。我们已经验证它在开始时设置得很好,并且是有效的。这不是关于数据保护的问题(我们确实有这个问题)。无论我们尝试连接哪个帐户,我们都可以在装有 iOS 12 的两台 iPad 上进行复制。所有这些帐户都可以连接到其他设备,包括装有 iOS 13 的 iPad。
因此,我们正在尝试隔离可能导致这些特定设备出现故障的原因。此外,这似乎是最近才开始发生的,我们无法确定是什么变化可能在我们这边触发了这种情况。
将 iPad 从 iOS 12 更新到 iOS 13 可以解决此问题。
我知道微软提供了一个谷歌特定的OIDC包( Microsoft.AspNetCore.Authentication.Google),它有一个选项.AddGoogle()来指定AccessType可以设置为offline.
但这可以使用标准 ASP.NET Core OIDC 包Microsoft.AspNetCore.Authentication.OpenIdConnect来完成吗.AddOpenIdConnect()?
使用 Microsoft 帐户,我们可以简单地请求offline_access范围,并且效果完美。但它不适用于 Google,并会导致错误invalid_scope。
asp.net google-openid asp.net-identity openid-connect asp.net-core
google-openid ×10
openid ×3
asp.net ×2
asp.net-core ×2
django ×2
google-oauth ×2
javascript ×2
android ×1
oauth-2.0 ×1
python ×1
safari ×1