creator-Google登录接入

creator-Google登录接入


前篇


使用代码登录模型

  1. 源站授权

    获取 Google API 客户端 ID - https://developers.google.com/identity/oauth2/web/guides/get-google-api-clientid?hl=zh-cn

    image-20230518103012308

  2. 登录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <script src="https://accounts.google.com/gsi/client"> </script>
    <script>
    const clientCode = google.accounts.oauth2.initCodeClient({
    client_id: 'GG_CLIENT_ID',
    scope: 'email profile openid',
    callback: (codeResponse) => {
    console.log("codeResponse: ", codeResponse);

    },
    });
    });
    </script>


    <button type="button" onclick="clientCode.requestCode()">login</button>
    • 登录成功后返回

      1
      2
      3
      4
      authuser: "0"
      code: "asdasd"
      prompt: "consent"
      scope: "email profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile openid"

服务器校验


踩坑

源站没有被授权 400


重定向没被授权 400

  • 报错: it doesn't comply with Google's OAuth 2.0 policy for keeping apps secure

  • 原因是因为重定向的 uri 没有加入到 重定向授权

    ```js
    const client = google.accounts.oauth2.initCodeClient({

    client_id: GG_CLIENT_ID,
    scope: 'https://www.googleapis.com/auth/calendar.readonly',
    ux_mode: 'redirect',
    redirect_uri: "http://localhost:57090", // 这个要加入授权
    state: "AAA"
    

    });

  • 解决办法: redirect_uri 加入到重定向授权

    image-20230518105007832


拒绝访问 403

  • 报错: 尚未完成 google 验证流程。此应用正在测试中 仅供已获开发者批准的测试人员使用。如果您认为自己应有权使用 请联系开发者。

    image-20230518110255666

  • 原因: APP 后台设置为 测试模式, 还未发布, 且未加入测试白名单

  • 解决办法: APP 发布出去

    image-20230518110427829