Google 的 Auth0“自定义社交”失败,并显示“用户 ID 无效”。

问题描述 投票:0回答:1

我设置了 Auth0 和 Google 凭据,并让它在 Auth0 内的免费试用期内正常工作。这是一个副项目,所以我需要切换到免费层“自定义社交”Auth0 登录。 我按照这些说明进行操作 但最终在 Auth0 测试页面和我使用由 Auth0 预先构建的社交登录的应用程序中出现“无效用户 ID”错误。

在 GCP 控制台中,我创建了一个“Web 应用程序的客户端 ID”

  • 授权的 JavaScript 起源 =
    https://MY_TENANT.uk.auth0.com
  • 授权重定向 URI =
    https://MY_TENANT.uk.auth0.com/login/callback

GCP“OAuth 同意屏幕”

  • 发布状态=测试
  • 用户类型=外部

应用程序注册(只需设置即可使其正常工作)

  • 应用程序主页 =
    https://auth0.com
  • 应用程序隐私政策链接 =
    https://auth0.com
  • 申请服务条款链接 =
    https://auth0.com
  • 授权域名 =
    auth0.com
  • 您的非敏感范围 =
    /auth/userinfo.email
  • 测试用户 =
    my email address

它生成

  • GCP_CLIENT_ID =
    XXX.apps.googleusercontent.com
  • GCP_CLIENT_SECRET =
    YYY

在 Auth0 中我创建了一个新的自定义社交登录

  • 授权网址 =
    https://accounts.google.com/o/oauth2/auth
  • 令牌 URL =
    https://oauth2.googleapis.com/token
  • 范围 =
    openid email
    (已设置空格)
  • 客户端 ID =
    GCP_CLIENT_ID
  • 客户秘密 =
    GCP_CLIENT_SECRET
  • 获取用户配置文件脚本
function(accessToken, ctx, cb) {
  var p = {
    accessToken: accessToken,
    id_token: ctx.id_token
  };
  cb(null,p);
}

按下测试,显示登录界面,选择测试帐户,然后显示错误

oauth auth0 google-identity
1个回答
0
投票

答案

我在 fetch javascript 中解析响应很糟糕。

user_id
是必需的,但我的真实代码中的解析部分是错误的

我是怎么解决的?

我有一个用 go 编写的简单的 httpDump 应用程序,我用它来做这些事情,它只是转储发送给它的任何内容并返回时间。

我使用 ngrok 将本地 httpDump 转发到互联网,并更新了获取脚本以指向我的笔记本电脑。

http 请求有效,这很好,因为到那时我不知道错误在哪里。

然后我用令牌手动调用谷歌,它的响应是

{
  "sub": "a number",
  "picture": "https://lh3.googleusercontent.com/a-/some_number",
  "email": "[email protected]",
  "email_verified": true
}

而不是我从我发现的Auth0文章复制的结构。

© www.soinside.com 2019 - 2024. All rights reserved.