本页面介绍如何使用 Cloud Endpoints Frameworks 在您的 API 中添加对于通过客户端应用进行用户身份验证的支持。请注意,目前支持 Android 和 JavaScript 客户端。
Endpoints Frameworks 支持通过使用以下任何方法的客户端应用对用户进行身份验证:
无论您使用哪种身份验证方法,在需要检查身份验证是否正确的每种 API 方法中,都必须检查是否存在有效的 User,具体如以下部分所述:
前提条件
本页面假定您已经完成以下操作:
创建了Google Cloud项目。
使用 Firebase 身份验证进行身份验证
要支持使用 Firebase 身份验证的客户端发起的调用,请执行以下操作:
创建一个 Firebase 项目(如果您尚未创建)。Firebase 项目是使用 Firebase 服务的 Google Cloud 控制台项目。如需了解详情,请参阅 Firebase 项目介绍和 Firebase 文档。
将以下操作所提到的参数添加到您的
@Api或方法注释中:- 向注释添加
authenticators参数,将其设置为值{EspAuthenticator.class}。 - 添加一个
issuers参数,其中包含设置为 Firebase 的@ApiIssuer。 - 添加一个
issuerAudiences参数,其中包含设置为 Firebase 的@ApiIssuerAudience和您的项目 ID。
例如:
@Api( name = "YOUR_API_NAME", version = "VERSION_NUMBER", authenticators = {EspAuthenticator.class}, issuers = { @ApiIssuer( name = "firebase", issuer = "https://securetoken.google.com/YOUR_PROJECT_ID", jwksUri = "https://www.googleapis.com/service_accounts/v1/metadata/x509/securetoken@") }, issuerAudiences = { @ApiIssuerAudience(name = "firebase", audiences = "YOUR_PROJECT_ID") })- 将
YOUR_API_NAME替换为您的 API 名称。 - 将
VERSION_NUMBER替换为您的 API 版本,例如v1。 - 将
YOUR_PROJECT_ID的两个实例替换为您的 Firebase 项目 ID。
- 向注释添加
在您的 API 实现代码中,导入
Users:import com.google.api.server.spi.auth.common.User;在需要检查身份验证是否正确的每种 API 方法中,检查是否存在有效的
User,如果不存在,则引发异常,具体如以下方法定义示例中所示:@ApiMethod(httpMethod = ApiMethod.HttpMethod.GET) public Email getUserEmail(User user) throws UnauthorizedException { if (user == null) { throw