我如何知道 appcheck 是否正确实施?
How do I know if appcheck is implemented correctly?
我已经按照 Firebase 文档在我的应用程序中实施了 AppCheck。
其中一个视频说,对于 iOS,您只需安装 SDK,配置将自动进行。
但是,当我回到 AppAttest 的书面文档时,我看到了一些用于初始化的代码,例如:
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
return AppAttestProvider(app: app)
}
}
(我想澄清一下,我的指标是正确的,并且当我测试我的应用程序时,请求确实伴随着一个有效的令牌)。
我必须实施它吗?如果不是,它有什么用?
谢谢!
tldr; 将 AppCheck 集成到您的应用中可能需要更改一些代码,具体取决于您希望用于生成 AppCheck 令牌的证明提供商。
How do I know if appcheck is implemented correctly?
如果您能够在 Firebase 控制台中看到 request metrics,则 AppCheck 已正确实施并正常工作。
One of the videos says that for iOS, you just need to install the SDK and the configuration will be automatic.
AppCheck SDK 将使用 Apple 的 DeviceCheck 作为证明提供程序 by default 来生成令牌。所以,这样一来,配置就自动完成了。
However when I go back to the written documentation of AppAttest I see some code to put for the initialization...
Apple 的 AppAttest 是不同的证明提供程序,默认情况下不使用。如果您希望 AppCheck 使用 AppAttest 生成令牌,您需要添加代码来配置 AppCheck 以执行此操作。
Do I have to implement it, and if not, what is it for?
它取决于你的用例,我会解释:
AppCheck SDK 使用 AppCheckProvider
s 生成应用检查令牌。
AppCheck 从 AppCheckProviderFactory
中获取这些 AppCheckProvider
个实例。如前所述,AppCheck 将默认使用 DeviceCheck,因此如果未手动设置 AppCheckProviderFactory
,AppCheck 将使用方便实现的 DeviceCheckProviderFactory
.
您可以使用 AppCheck.setAppCheckProviderFactory(_:)
API 设置 AppCheck 的 AppCheckProviderFactory
。如果您选择这样做,则必须 在 调用 FirebaseApp.configure()
之前完成。请参阅 documentation 中的以下示例:
let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)
FirebaseApp.configure()
因此,要回答您的问题,是否实施 AppCheckProviderFactory
协议取决于您希望使用什么 AppCheckProvider
来生成应用检查令牌。
如果您希望 AppCheck 使用 DeviceCheckProvider
以外的任何提供程序或提供程序的组合,那么您需要实施 AppCheckProviderFactory
协议并将 AppCheck 设置为使用已实施的工厂。
There are 4 types of AppCheckProvider
s:
例如,这是一个示例工厂实现,其中如果处于调试模式,AppCheck 将使用调试提供程序,如果 OS 版本支持 AppAttest,则使用 AppAttest 提供程序,如果 AppAttest 不支持,则退回到使用 DeviceCheck 提供程序支持。
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
#if DEBUG
return AppCheckDebugProvider(app: app)
#endif
if #available(iOS 14.0, *) {
return AppAttestProvider(app: app)
} else {
return DeviceCheckProvider(app: app)
}
}
}
如您所见,自定义 AppCheckProviderFactory
允许您精确控制 AppCheck 使用的提供程序。
希望这能回答您的问题!
我已经按照 Firebase 文档在我的应用程序中实施了 AppCheck。 其中一个视频说,对于 iOS,您只需安装 SDK,配置将自动进行。 但是,当我回到 AppAttest 的书面文档时,我看到了一些用于初始化的代码,例如:
class YourSimpleAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
return AppAttestProvider(app: app)
}
}
(我想澄清一下,我的指标是正确的,并且当我测试我的应用程序时,请求确实伴随着一个有效的令牌)。
我必须实施它吗?如果不是,它有什么用?
谢谢!
tldr; 将 AppCheck 集成到您的应用中可能需要更改一些代码,具体取决于您希望用于生成 AppCheck 令牌的证明提供商。
How do I know if appcheck is implemented correctly?
如果您能够在 Firebase 控制台中看到 request metrics,则 AppCheck 已正确实施并正常工作。
One of the videos says that for iOS, you just need to install the SDK and the configuration will be automatic.
AppCheck SDK 将使用 Apple 的 DeviceCheck 作为证明提供程序 by default 来生成令牌。所以,这样一来,配置就自动完成了。
However when I go back to the written documentation of AppAttest I see some code to put for the initialization...
Apple 的 AppAttest 是不同的证明提供程序,默认情况下不使用。如果您希望 AppCheck 使用 AppAttest 生成令牌,您需要添加代码来配置 AppCheck 以执行此操作。
Do I have to implement it, and if not, what is it for?
它取决于你的用例,我会解释:
AppCheck SDK 使用 AppCheckProvider
s 生成应用检查令牌。
AppCheck 从 AppCheckProviderFactory
中获取这些 AppCheckProvider
个实例。如前所述,AppCheck 将默认使用 DeviceCheck,因此如果未手动设置 AppCheckProviderFactory
,AppCheck 将使用方便实现的 DeviceCheckProviderFactory
.
您可以使用 AppCheck.setAppCheckProviderFactory(_:)
API 设置 AppCheck 的 AppCheckProviderFactory
。如果您选择这样做,则必须 在 调用 FirebaseApp.configure()
之前完成。请参阅 documentation 中的以下示例:
let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)
FirebaseApp.configure()
因此,要回答您的问题,是否实施 AppCheckProviderFactory
协议取决于您希望使用什么 AppCheckProvider
来生成应用检查令牌。
如果您希望 AppCheck 使用 DeviceCheckProvider
以外的任何提供程序或提供程序的组合,那么您需要实施 AppCheckProviderFactory
协议并将 AppCheck 设置为使用已实施的工厂。
There are 4 types of
AppCheckProvider
s:
例如,这是一个示例工厂实现,其中如果处于调试模式,AppCheck 将使用调试提供程序,如果 OS 版本支持 AppAttest,则使用 AppAttest 提供程序,如果 AppAttest 不支持,则退回到使用 DeviceCheck 提供程序支持。
class YourAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
#if DEBUG
return AppCheckDebugProvider(app: app)
#endif
if #available(iOS 14.0, *) {
return AppAttestProvider(app: app)
} else {
return DeviceCheckProvider(app: app)
}
}
}
如您所见,自定义 AppCheckProviderFactory
允许您精确控制 AppCheck 使用的提供程序。
希望这能回答您的问题!