繁体   English   中英

无法通过 Google 提供商从 Plumier 社交登录获取用户电子邮件

[英]Can't get user email from Plumier social login with Google provider

我像这个例子一样创建了一个带有社交登录的 React 应用程序,但电子邮件字段总是返回null

我在谷歌开发者控制台上检查了我的配置,它已经包含了email范围。

我的身份验证控制器就像示例一样

class AuthController {
    @oAuthCallback(new GoogleProvider(process.env.GOOGLE_CLIENT_ID, process.env.GOOGLE_SECRET))
    async google(@bind.loginStatus() login: GoogleLoginStatus, state: string, @bind.cookie("csrf:key") secret: string) {

        //the login.data.email <--- always null

    }
}

我错过了什么吗?

在当前版本1.0.0-beta.11 ,谷歌授权端点(对话框端点)的默认scope参数只是https://www.googleapis.com/auth/userinfo.profile ,我将解决这个问题,并将准备好下一个稳定版本。

对于解决方法,您可以在对话端点上手动返回scope参数,如下所示

export class DialogsController {

    @oAuthDialogEndPoint(new GoogleDialogProvider(<your callback>, <your client id>))
    google() {
        return { scope: "https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile" }
    }
}

请注意,该scope参数是像描述的空格分隔范围在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM