相关疑难解决方法(0)

使用Google+登录时阻止自动登录

我正在将Google+登录与我的网站集成,这也允许用户使用Twitter和Facebook登录.因此,该站点的登录页面有3个按钮,每个按钮对应一个服务.

我遇到的问题是在以下场景中:

  • 用户进入登录页面
  • 用户使用G +成功登录
  • 用户退出我的网站(但该帐户仍与G +相关联,退出该网站不会断开G +帐户)
  • 用户再次访问登录页面
  • 在此阶段,将使用G +按钮登录并自动将用户签入与G +关联的帐户,而无需用户单击按钮

问题是,在重新访问登录页面时,我希望用户可以选择使用其他服务登录,而不是使用G +自动登录.如果用户想要使用G +登录,则可以通过单击按钮进行登录 - 然后用户将自动登录.

是否可以阻止此按钮渲染自动登录?我可以通过data-approvalprompt="force"在按钮上使用as属性来模拟它,但我不认为这是一个理想的解决方案(然后用户必须通过确认过程,我理想的是希望阻止)

google-plus

38
推荐指数
3
解决办法
2万
查看次数

使用Google会话和帐户选择器的移动应用浏览器的行为

问题:尝试在移动应用之间创建SSO.和浏览器.

我们有什么:

我们有一个离子移动应用程序.使用OAuth 2.0身份验证"使用Google登录".我们有多个内部应用程序可以在OAuth2和SAML上运行,因此我们为GSuite启用了SSO,以便所有应用程序可以使用一个登录名和密码无缝地工作.现在,当我们点击"使用Google登录"按钮时,

  1. 在浏览器应用中打开SSO登录页面.我们启用了SSO,因此我们设置了login_hint,这有助于我们直接将我们带到SSO登录页面.

  2. 用户输入useremail和password,并在使用OAuth 2代码参数成功进行身份验证后重定向到redirect_uri.

  3. redirect_uri是以一种方式完成的,当url被触发时,它会再次使用OAuth 2代码param重定向回我们的Android应用程序,然后我们从token和userinfo端点提取access_token和useremail.

  4. 根据授权,仪表板显示指向我们内部应用程序的链接.适用于Google SAML 2.0或OAuth2身份验证.

预期结果:

当用户点击移动应用中的任何SAML/OAuth 2链接时.仪表板,我们在浏览器应用程序中打开该链接.它应该自动登录到该应用程序.并将我们带到目标网页,因为我们已经在步骤#a中设置了Google会话.

偏离预期的事情:

  • 当我们尝试访问SAML/OAuth应用时,当Chrome浏览器中设置了一个配置文件时,它会显示帐户选择器,其中列出了设备中同步的所有帐户,但没有列出用#b登录的用户.它应该显示该帐户或直接登录并显示登录页面.当我们没有设置chrome配置文件时,它就不会发生.
  • 当我们执行以下操作时,所有浏览器中的会话都会自动终止,因此会再次请求凭据.
    • 关闭浏览器选项卡(有时).
    • 从最近的应用程序托盘清除浏览器(大多数时间)
    • 重启设备(总是)

想要了解如何以及何时在手机中的谷歌浏览器中自动创建和杀死会话?

有什么地方保持会话完整吗?|有没有办法再通过显示与手机同步的帐户的帐户选择器?

更新

能够找出奇怪的观察结果:我们保持SSO关闭,以便谷歌登录屏幕出现.有了这一切一切正常.即使重新启动浏览器或手机,无论Android还是iOS,都不会终止会话.

所以问题在于我们设计的SSO.无法确定我们发布到Google的ACS网址的SAML XML中要设置的内容.

android google-chrome single-sign-on ios google-oauth2

17
推荐指数
1
解决办法
1778
查看次数

强制用户通过Google OAuth2选择帐户

我的应用程序中有以下工作流程:

  1. 用户登录我的自定义应用
  2. 用户点击按钮即可关联其YouTube帐户
  3. 应用程序使用下面的代码列表发出服务器端请求
  4. 用户被重定向到google auth网址

此时,发生以下两种情况之一:

[我从不想要这种行为] - 如果用户只登录了一个Google帐户(例如gmail,Google Apps for Domains等等),则系统永远不会要求用户选择要关联的帐户.它只是假设他们想要使用他们登录的那个并继续它的快乐方式.

[我一直想要这种行为] - 如果用户未登录任何Google帐户,或者他们登录了多个Google帐户,则系统会要求他们选择要继续使用的帐户.

问题:即使用户当前登录到单个Google帐户,我还有办法强制用户选择帐户吗?

码:

private def getFlow() = {
  if (flow == null) {
    logger.info("Using OAuth client secrets file: " + GoogleOAuthService.CLIENT_SECRETS_JSON)
    clientSecrets = GoogleClientSecrets.load(JacksonFactory.getDefaultInstance(),
      new InputStreamReader(getClass.getResourceAsStream(GoogleOAuthService.CLIENT_SECRETS_JSON)));
    redirectUri = clientSecrets.getDetails().getRedirectUris().get(0)
    flow = new GoogleAuthorizationCodeFlow.Builder(
      httpTransport, JacksonFactory.getDefaultInstance(), clientSecrets, SCOPES).setDataStoreFactory(
      dataStoreFactory).setAccessType("offline").setApprovalPrompt("force").build()
  }
  flow
}

def newAuthorizationUrl(userId: String) = {
  val urlRequest = getFlow().newAuthorizationUrl()

  urlRequest.setAccessType("offline")
   .setRedirectUri(redirectUri).setState(userId).build()
}
Run Code Online (Sandbox Code Playgroud)

google-oauth google-oauth-java-client google-oauth2

13
推荐指数
2
解决办法
1926
查看次数

使用Firebase Google用户身份验证更改用户

使用Firebase Google用户身份验证时,如果用户已经授权应用程序并且仅登录到一个Google帐户,则会立即登录.

有没有办法强制显示"选择帐户"对话框,以便用户有机会登录其他Google帐户或创建新帐户?

货币据我所知,用户必须从Google.com手动注销当前的Google帐户(或登录> 1)才能显示对话框.

firebase google-oauth firebase-authentication

11
推荐指数
2
解决办法
4219
查看次数

强制谷歌显示帐户选择器和同意屏幕

我可以单独使用prompt=consentprompt=select_account单独使用,但Google似乎不允许我将它们组合使用.我尝试了强制谷歌帐户选择器prompt=consent+select_account的答案中的建议,但失败了错误:"无效提示:同意+ select_account".

该文档(https://developers.google.com/accounts/docs/OAuth2Login)显示"以空格分隔的列表",因此我尝试consent select_account但失败的原因是:"在此服务器上找不到请求的网址."

我也试过结合prompt=select_accountapproval_prompt=force,但谷歌不喜欢,要么.

其他人在结合同意屏幕和帐户选择器方面运气好吗?

更新:

这是我的JavaScript方法,用于创建从gmail获取联系人的URL

$scope.importGmailContacts = function() {
    provider = 'gmail';
    $scope.importing_from_gmail = true;
    window.open(protocol + "://" + host + ":" + port + "/contacts/gmail", "_blank",
     "toolbar=yes, scrollbars=yes, resizable=yes, top=0, left=0, width=600, height=600, prompt='select_account+consent', approval_prompt=force");
}
Run Code Online (Sandbox Code Playgroud)

我尝试过设置prompt,approval_prompt无论是集体还是单独设置,但似乎无法正常工作.请参阅此问题.

google-api google-oauth omnicontacts-gem

10
推荐指数
1
解决办法
2460
查看次数

Facebook登录选择帐户

在实施Google登录网站时,可以设置“ select_account”提示,以便用户选择其他Google帐户。(强制使用Google帐户选择器

Facebook提供类似的东西吗?如果他们找到了,我似乎找不到。我遇到的问题是,如果用户选择“保持登录状态”,他们将永远无法切换并使用其他Facebook帐户登录,而无需先登录Facebook并先注销。

facebook-oauth facebook-login

5
推荐指数
0
解决办法
161
查看次数