📜  使用 Google 帐户启用第三方应用程序登录(1)

📅  最后修改于: 2023-12-03 15:22:11.745000             🧑  作者: Mango

使用 Google 帐户启用第三方应用程序登录

Google帐户是一个常见的在线身份验证机制,许多网站都支持使用Google帐户进行登录。在这种情况下,您可以使用Google帐户启用第三方应用程序的登录。

如何使用Google帐户登录第三方应用程序?

为了使用Google帐户启用第三方应用程序的登录,您需要完成以下步骤:

  1. 创建Google API帐户。
  2. 创建OAuth 2.0客户端ID并下载JSON密钥。
  3. 在应用程序中使用Google帐户登录。

我们将逐个解释这些步骤。

创建Google API帐户

要使用Google帐户登录第三方应用程序,您需要创建一个Google API帐户。请按照以下步骤操作:

  1. 转到Google开发者控制台。您需要登录您的Google帐户。
  2. 点击“创建项目”按钮。
  3. 输入项目名称,然后单击“创建”按钮。
  4. 在左侧菜单中,单击“API和服务”>“仪表板”,然后单击“+启用API和服务”。
  5. 搜索并选择“Google+ API”和“Google身份验证API”。单击“启用”按钮。

注意:在2019年3月11日之后,新创建的项目将无法访问Google+ API。

创建OAuth 2.0客户端ID并下载JSON密钥

创建OAuth 2.0客户端ID并下载JSON密钥是使用Google帐户登录第三方应用程序的关键步骤。请按照以下步骤操作:

  1. 在左侧菜单中,单击“API和服务”>“凭据”,然后单击“创建凭据”按钮>“OAuth客户端ID”。
  2. 选择“网络应用程序”并输入应用名称。
  3. 在“已授权的重定向URI”字段中,输入您的应用程序URL。
  4. 单击“创建”按钮。
  5. 单击右侧下载按钮下载JSON密钥。将其命名为“client_secret.json”并存储在您的项目根目录中。
在应用程序中使用Google帐户登录

现在,您已经准备好在应用程序中使用Google帐户进行登录。请按照以下步骤操作:

  1. 在您的应用程序中添加Google身份验证API和Google+ API的依赖库。
  2. 配置您的应用程序以使用JSON密钥以及您的OAuth 2.0客户端ID。
  3. 添加“登录与授权”按钮,并将其链接到Google的登录页面。用户单击该按钮时,将被重定向到Google登录界面以进行身份验证。
  4. 在您的应用程序中,处理用户成功登录后的响应。

例如,您可以使用以下代码段使用Google身份验证API进行用户身份验证:

from google.oauth2 import id_token
from google.auth.transport import requests
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def home():
    return 'Hello, World!'

@app.route('/auth/google', methods=['POST'])
def google_auth():
    token = request.json.get('token')
    try:
        idinfo = id_token.verify_oauth2_token(token, requests.Request())
        if idinfo['iss'] not in ['accounts.google.com', 'https://accounts.google.com']:
            raise ValueError('Issuer not from Google.')
        userid = idinfo['sub']
        return jsonify({'userid': userid})
    except ValueError as e:
        return jsonify({'error': str(e)})

这是一个基于Flask的简单示例。当用户使用Google帐户登录时,它将检索OAuth 2.0令牌并验证其有效性。如果身份验证成功,它将向客户端发送一个包含用户ID的JSON响应。

总结

启用Google帐户的第三方应用程序登录需要一些准备步骤,包括创建Google API帐户,创建OAuth 2.0客户端ID并下载JSON密钥。配置完毕后,您可以在您的应用程序中使用Google身份验证API进行用户身份验证。