首页 文章

在我的网站上验证'sign in with google'中的令牌ID

提问于
浏览
1

我希望在我的网站上实施“使用谷歌登录” . OpenId connect建议使用其登录客户端库的Google登录 . 但是在Google登录页面上

https://developers.google.com/identity/sign-in/web/backend-auth

在该部分

“调用tokeninfo endpoints ”

它被提到了

“验证ID令牌的最简单方法是使用tokeninfo endpoints . 调用此 endpoints 涉及额外的网络请求,为您执行大部分验证,但会引入一些延迟和网络错误的可能性 . For these reasons, it is suitable only for deployments with fewer than 100 monthly active users, as well as for debugging and informational purposes.

我正在处理的网站预计每月有10,000名活跃用户 . 那么我如何实现一个协议来识别来自Google的令牌为我的网站登录 .

1 回答

  • 1

    如您所知,可以使用OAuth v2的客户端库或使用对Google服务器的单个API调用来离线执行令牌验证 . 由于脱机客户端是特定于编程语言的,因此您需要找到您正在使用的特定语言的客户端/示例 . Google GitHub页面中的一些令牌验证示例:

    或者,您可以通过客户端库使用tokeninfo endpoints ,也可以直接使用Google API endpoints ,如Google API Explorer here所示 . 使用ID令牌的curl示例:

    curl https://www.googleapis.com/oauth2/v2/tokeninfo?id_token=eyJhbGciOiJSUzI1NiIsImtpZCI6IjkyNGE0NjA2NDgxM2I5YTA5ZmFjZGJiNzYwZGI5OTMwMWU0ZjBkZjAifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwic3ViIjoiMTEwNTcwOTc3MjI2ODMwNTc3MjMwIiwiYXpwIjoiMzY0MzgxNDQxMzEwLXRuOGw2ZnY2OWdnOGY3a3VjanJhYTFyZWpmaXRxbGpuLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIiwiYXRfaGFzaCI6IlAzLU1HZTdocWZhUkZ5Si1qcWRidHciLCJhdWQiOiIzNjQzODE0NDEzMTAtdG44bDZmdjY5Z2c4ZjdrdWNqcmFhMXJlamZpdHFsam4uYXBwcy5nb29nbGV1c2VyY29udGVudC5jb20iLCJjX2hhc2giOiJjd3hsdXBUSkc4N2FnbU1pb0tSYUV3IiwiaWF0IjoxNDM0NDcyODc2LCJleHAiOjE0MzQ0NzY0NzZ9.Gz_WljZOV9NphDdClakLstutEKk65PNpEof7mxM2j-AOfVwh-SS0L5uxIaknFOk4-nDGmip42vrPYgNvbQWKZY63XuCs94YQgVVmTNCTJnao1IavtrhYvpDqGuGKdEB3Wemg5sS81pEthdvHwyxfwLPYukIhT8-u4ESfbFacsRtR77QRIOk-iLJAVYWTROJ05Gpa-EkTunEBVmZyYetbMfSoYkbwFKxYOlHLY-ENz_XfHTGhYhb-GyGrrw0r4FyHb81IWJ6Jf-7w6y3RiUJik7kYRkvnFouXUFSm8GBwxsioi9AAkavUWUk27s15Kcv-_hkPXzVrW5SvR1zoTI_IMw
    

    如文档中所述,网络调用确实会引入一些延迟,如果您在每个请求上验证令牌(例如,使用ID令牌作为承载令牌),则最好使用库为您的首选语言验证令牌脱机 .

相关问题