标签: google-authentication

为什么在通过IMAP连接到Gmail时会收到"需要Web登录"消息?

我正在尝试通过IMAP连接并从Gmail检索邮件标头列表.

我收到了Google的回复,其中包含"需要Web登录",然后是一个URL,通过网络界面继续登录.记录:http://hastebin.com/odufaducew.vhdl

为什么会这样?如何处理这种情况?我正在使用适用于iOS的MailCore2 lib,如果这有帮助的话.

gmail imap google-authentication gmail-imap mailcore2

7
推荐指数
2
解决办法
7040
查看次数

使用OAuth2服务帐户生成访问令牌时出现问题

我们在使用适用于Google Apps市场用户的OAuth2服务帐户生成访问令牌时遇到问题.此处生成的令牌将用于访问Google API(联系人,日历,邮件,管理SDK API),因此我们服务中的所有Google集成都会失败.从太平洋标准时间3月9日太平洋标准时间开始突然失败.您能否将此视为重中之重,请告知我们问题的原因,或者我们是否遗漏了这些问题.我们正在获得API响应

{ "error": "invalid_request" }
Run Code Online (Sandbox Code Playgroud)

请查看以下示例请求以及" https://www.googleapis.com/oauth2/v4/token "(如文档中)和" https://accounts.google.com "的2个示例请求的所有标题和参数/ o/oauth2/token "端点.两者都分别导致响应{"error":"internal_failure","error_description":"Invalid Value"}和{"error":"invalid_request"}的错误消息.

PS:如果我们使用相应的Google客户端库,则服务电子邮件地址,用于在示例请求中生成以下签名的私钥文件都有效.但我们正在使用Google的REST API.我们在Google API控制台中创建了一个示例应用程序,用于测试新的服务帐户详细信息,这会导致相同的异常.

网址:

https://www.googleapis.com/oauth2/v4/token

头:

内容类型:应用/ X WWW的窗体-urlencoded

身体:

grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ ==.VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =

响应:

代码:400 {"error":"internal_failure","error_description":"无效值"}

网址:

https://accounts.google.com/o/oauth2/token

头:

内容类型:应用/ X WWW的窗体-urlencoded

身体:

grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ ==.VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =

响应:

代码:400 {"error":"invalid_request"}

编辑:文档中的示例请求.这段代码在过去的两年里为我们工作,突然间它昨天停止了工作.

POST/oauth2/v4/token HTTP/1.1主机:www.googleapis.com内容类型:application/x-www-form-urlencoded

grant_type =瓮%3Aietf%3Aparams%3Aoauth%3Agrant型%3Ajwt承载&断言= eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU3MzM4MSwiaWF0IjoxMzI4NTY5NzgxfQ.ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-gs2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh_jF1qskLa2w0rxMSjwruNKbysgRNctZPln7cqQ

google-api google-apps google-authentication google-apps-marketplace service-accounts

7
推荐指数
1
解决办法
1249
查看次数

无法在Firebase中使用Google身份验证获取电子邮件

我正在使用Firebase提供的代码进行Google身份验证,并且以某种方式,身份验证成功,但是电子邮件未正确导入到Firebase。

https://firebase.google.com/docs/auth/ios/google-signin

如您在以下屏幕截图中所见,该电子邮件为空白。当我看着调试器时,它显示为nil。
我单击了“允许在身份验证期间查看电子邮件”,但是我认为仍有一些设置未正确完成。有人可以帮我看看吗?我有兴趣使用电子邮件为每个用户创建用户名。

在此处输入图片说明

func signIn(signIn: GIDSignIn!, didSignInForUser user: GIDGoogleUser!, withError error: NSError!) {
    if let error = error {
        print(error.localizedDescription)
        return
    }

    let authentication = user.authentication
    let credential = FIRGoogleAuthProvider.credentialWithIDToken(authentication.idToken,
                                                                 accessToken: authentication.accessToken)
    FIRAuth.auth()?.signInWithCredential(credential) { (user, error) in
        if error != nil {
            print(error?.localizedDescription)
            return
        }

        print("User logged in with Google...")
        self.performSegueWithIdentifier("ToHome", sender: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

google-authentication ios firebase swift firebase-authentication

7
推荐指数
1
解决办法
1648
查看次数

在本地docker run中传递google默认应用程序凭据

有没有办法通过docker run 传递我的本地google默认应用程序凭据(https://developers.google.com/identity/protocols/application-default-credentials)?

我的用例:

  • 我的机器上本地运行的代码正确处理默认应用程序凭据
  • 在GCE实例上的docker镜像内运行的代码也可以正确处理默认的应用程序凭据
  • 问题出在我的机器上"docker run".在docker容器中运行的代码不使用主机默认应用程序凭据.

如果我能告诉"docker run"将主机google默认应用程序凭据传递给docker镜像,那将是很好的.

google-authentication google-cloud-platform google-cloud-sdk

7
推荐指数
1
解决办法
3612
查看次数

找不到模块googleapis

这是我的代码:

var http = require('http');
var express = require('express');
var Session = require('express-session');
var google = require('googleapis');
var plus = google.plus('v1');
var OAuth2 = google.auth.OAuth2;
Run Code Online (Sandbox Code Playgroud)

这是一个错误:

Error: Cannot find module 'googleapis'
    at Function.Module._resolveFilename (module.js:485:15)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/software/Harsh Patel/test/demo_auth/server.js:4:14)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)
    at tryModuleLoad (module.js:466:12)
    at Function.Module._load (module.js:458:3)
Run Code Online (Sandbox Code Playgroud)

我试图用这些方法重新安装模块

  1. npm install googleapis --save
  2. npm install googleapis
  3. npm install (将模块添加到package.json文件中)

但这些方法不起作用.

我在node_modules目录中找到了googleapis模块.

google-api google-authentication node.js

7
推荐指数
1
解决办法
4085
查看次数

使用没有第三方 Cookie 的 Google Firebase 身份验证

我目前正在尝试使用社交媒体登录,并意识到这些登录信息的交付方式有些奇怪,这是因为我的工作场所与大多数办公室一样,将 3rd 方 cookie 作为安全策略阻止。

Google Firebase 身份验证使用 3rd 方 cookie,因此如果我尝试使用 Firebase,我将被重定向到 Google 页面(如预期)但是当我在登录后被重定向回原始网页时(并且 Firebase 尝试设置 cookie) , 我收到一条错误消息This browser is not supported or 3rd party cookies and data may be disabled.

但是,MongoDB Stitch以某种方式工作,即使禁用了 3rd 方 cookie,我也可以实际登录。我似乎真的无法理解为什么会这样,但我希望这里有人可以对此有所了解。如果有帮助,MongoDB Stitch 会要求您在 Google 控制台中将其设置https://stitch.mongodb.com为 Origin URI 和https://stitch.mongodb.com/api/client/v2.0/auth/callbackAuthorized Redirect URI - 而您必须在 MongoDB 控制台中设置自己的网站 URI,我认为这可能是不同之处?

无论如何,MongoDB Stitch 的文档严重不足(由于它仍处于公开测试阶段),所以如果可能的话,我真的很想采用 Google Firebase 的方式。

  1. 有谁知道 MongoDB Stitch 如何绕过设置 3rd Party Cookies
  2. 如何在禁用第 3 方 Cookie 的情况下使用 Google Firebase 身份验证

cookies google-authentication oauth-2.0 firebase-authentication mongodb-stitch

7
推荐指数
1
解决办法
5011
查看次数

使用 Google Compute Engine 上的应用程序默认凭据访问 Sheets API

ADC(应用程序默认凭据)工作流程是否仅支持 Google Cloud API(例如,支持 Google Cloud Storage API,但不支持 Google Sheet API)?

我指的是google.auth 的默认方法- 不必在代码中存储任何私钥是一个巨大的胜利,也是有效利用 ADC(应用程序默认凭据)设置的主要好处。

GOOGLE_APPLICATION_CREDENTIALS如果我将环境变量设置为私钥文件(例如 key.json),则以下代码将有效。default这与包中步骤 1 的方法一致google.auth1. If the environment variable GOOGLE_APPLICATION_CREDENTIALS is set to the path of a valid service account JSON private key file, then it is loaded and returned.

import google.auth
from apiclient import discovery

credentials, project_id = google.auth.default(scopes=['https://www.googleapis.com/auth/spreadsheets'])

sheets = discovery.build('sheets', 'v4', credentials=credentials)

SPREADSHEETID = '....'

result = sheets.spreadsheets().values().get(spreadsheetId=SPREADSHEETID, range='Sheet1!A:B').execute()

print result.get('values', [])
Run Code Online (Sandbox Code Playgroud)

现在,看看该方法的第 4 步: …

python google-authentication google-compute-engine google-cloud-platform google-sheets-api

7
推荐指数
1
解决办法
3317
查看次数

googleUser.getAuthResponse()。id_token不以闪亮方式返回id_token

我正在尝试创建一个闪亮的应用程序,该应用程序首先使用OAuth进行授权(请参阅https://developers.google.com/identity/sign-in/web/sign-in),然后获取一个令牌,并使用来访问使用googlesheets4库的Google工作表。登录过程正常进行,这意味着我可以看到我的电子邮件(以及的其他数据googleUser.getBasicProfile()。似乎没有id_token返回。)最小示例:

app.R

library(shiny)
library(shinyjs)
library(googlesheets4)

shinyApp(
  ui = fluidPage(
    useShinyjs(),  
    tags$head(tags$script(src="https://apis.google.com/js/platform.js")),
    tags$meta(name = "google-signin-scope", content = "profile email"),
    tags$meta(name = "google-signin-client_id", content = "<CLIENT_ID>.apps.googleusercontent.com"),
    includeScript("signin.js"),
    div(id = "signin", class = "g-signin2", "data-onsuccess" = "onSignIn"),
    actionButton("signout", "Sign Out", onclick="signOut();", class="btn-danger"),

    with(tags, dl(dt("Email"), dd(textOutput("g.email")),
                  dt("Token"), dd(textOutput("g.id_token"))
                  )),

    tableOutput("df")
  ),


  server = function(input, output) {

    output$g.email = renderText({ input$g.email }) # here my email is printed in the app
    output$g.id_token = renderText({ input$g.id_token}) # no …
Run Code Online (Sandbox Code Playgroud)

r google-authentication google-oauth shiny google-sheets-api

7
推荐指数
1
解决办法
149
查看次数

“使用 Google 登录”按钮的 data-login_uri 属性应使用什么?

我正在尝试实现“使用 Google 登录”按钮,如下所述: https: //developers.google.com/identity/gsi/web/guides/display-button

我对它的期望感到困惑data-login_uri,如下所示(取自上面链接的文档):

<div id="g_id_onload"
     data-client_id="YOUR_GOOGLE_CLIENT_ID"
     data-login_uri="https://your.domain/your_login_endpoint"
     data-auto_prompt="false">
</div>
Run Code Online (Sandbox Code Playgroud)

我已正确配置应用程序的客户端 ID,并且可以完成 Google 弹出窗口提供的大部分登录/身份验证流程。但是,一旦弹出窗口关闭,它就会尝试POST到我指定为data-login_uri.

这让我相信我们需要一个后端端点来做......某事......但我无法找到有关此端点应该如何表现的任何文档,因此我不确定有什么要求与我的后端开发人员沟通。

我错过了什么?

authentication google-authentication google-account google-client-login google-signin

7
推荐指数
1
解决办法
5388
查看次数

Artifact 存储库的密钥环身份验证不起作用 (GCP)

为了设置对私有 pip 存储库的密钥环身份验证,我按照设置对 Python 包存储库的身份验证 - 使用密钥环进行身份验证 中的步骤进行操作。

\n

我选择使用环境变量进行身份验证。我验证它设置正确:

\n
abc@def:~/PycharmProjects/ghi$ echo $GOOGLE_APPLICATION_CREDENTIALS\n/home/jkl/.googlekeys/serviceaccount.json\n
Run Code Online (Sandbox Code Playgroud)\n

我还使用登录我的用户gcloud auth login。\n登录的用户是对 Artifact Registry 具有写入权限的服务帐户的所有者。

\n

不幸的是,当我尝试安装包\xef\xbc\x9a 时得到以下输出

\n
abc@def:~/PycharmProjects/ghi$ pip install stringcase\nLooking in indexes: https://pypi.org/simple, https://us-west1-python.pkg.dev/mno-415182/pqr/simple/\nUser for us-west1-python.pkg.dev:\n
Run Code Online (Sandbox Code Playgroud)\n

我希望密钥环能够在这一步处理身份验证。对于确定此问题的原因有什么建议吗?

\n

google-authentication google-cloud-platform google-artifact-registry

7
推荐指数
1
解决办法
4586
查看次数