Google OIDC 错误。 "Error 400: invalid_scope. Requests for only id token must contain a subset of [openid, email, profile] scopes."
Google OIDC error. "Error 400: invalid_scope. Requests for only id token must contain a subset of [openid, email, profile] scopes."
我们有一个通过 Google OIDC 认证的 React 应用程序。它工作正常,突然用户不知何故出现以下错误。
Error 400: invalid_scope. Requests for only id token must contain a subset of [openid, email, profile] scopes
我们需要访问用户数据,因此我们的身份验证提供程序的范围是,
export const AUTH_OIDC_SCOPE ='https://www.googleapis.com/auth/admin.directory.user'
授权码:
const provider = new firebase.auth.OAuthProvider(AUTH_PROVIDER)
provider.addScope(AUTH_OIDC_SCOPE)
const authenticateWithGcp = () => {
firebase
.auth()
.signInWithPopup(provider)
.catch((error) => {
return error
})
}
useEffect(() => {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
user.getIdToken(true).then((token) => {
....
})
} else {
authenticateWithGcp()
}
})
}, [])
知道如何修复错误,同时将 admin.directory.user 保持在范围内吗?
如果您查看错误消息,它会显示“仅请求 ID 令牌”,这就是问题所在。
当您仅请求 ID-token 时,您需要请求用户详细信息,如 openid、电子邮件或个人资料.....否则 id-token 将为空。
只要求 ID 令牌意味着您不需要任何访问令牌。所以这意味着 AUTH_OIDC_SCOPE 应该是
AUTH_OIDC_SCOPE ='openid email profile'
如果那是你想要做的。
我们有一个通过 Google OIDC 认证的 React 应用程序。它工作正常,突然用户不知何故出现以下错误。
Error 400: invalid_scope. Requests for only id token must contain a subset of [openid, email, profile] scopes
我们需要访问用户数据,因此我们的身份验证提供程序的范围是,
export const AUTH_OIDC_SCOPE ='https://www.googleapis.com/auth/admin.directory.user'
授权码:
const provider = new firebase.auth.OAuthProvider(AUTH_PROVIDER)
provider.addScope(AUTH_OIDC_SCOPE)
const authenticateWithGcp = () => {
firebase
.auth()
.signInWithPopup(provider)
.catch((error) => {
return error
})
}
useEffect(() => {
firebase.auth().onAuthStateChanged((user) => {
if (user) {
user.getIdToken(true).then((token) => {
....
})
} else {
authenticateWithGcp()
}
})
}, [])
知道如何修复错误,同时将 admin.directory.user 保持在范围内吗?
如果您查看错误消息,它会显示“仅请求 ID 令牌”,这就是问题所在。
当您仅请求 ID-token 时,您需要请求用户详细信息,如 openid、电子邮件或个人资料.....否则 id-token 将为空。
只要求 ID 令牌意味着您不需要任何访问令牌。所以这意味着 AUTH_OIDC_SCOPE 应该是
AUTH_OIDC_SCOPE ='openid email profile'
如果那是你想要做的。