LaunchDarkly 文档对使用此工具所需的各种键有点混乱。
SDK 密钥
是clientSideID
SDK 密钥(客户端)。您可以从 LaunchDarkly Web 界面获取它。项目中的整个环境都是一样的,所以如果你使用 React SDK 或 JS SDK 对每个客户端都是一样的。
要获取它,请转到app.launchdarkly.com/YOUR_PROJECT
,单击右上角的搜索图标。您将看到带有按钮的提示。您需要单击按钮Copy SDK key for the current development
=> Client-side ID
。请注意,如果您有dev
环境和prod
环境,它们的键将不同。或者,您可以转到Account settings
->Projects
查看所有 SDK 密钥。
查看不同种类的 SDK 密钥的详细信息
访问令牌
如果您不使用 SDK 但使用 REST API,则需要访问令牌。您可以通过转到Account settings
->从 LaunchDarkly Web 界面获取它Authorization
。您可以拥有多个访问令牌。
用户密钥
用户密钥唯一标识您的应用程序的用户。您负责生成它。根据文档,无法在 LaunchDarkly 界面中预先创建用户。相反,当您提供新的用户密钥时,LaunchDarkly 会动态注册用户。
对于您的应用程序的不同注册用户,用户密钥是不同的。使用什么作为用户唯一密钥取决于您,但您有责任将其存储在数据库中,并始终为同一用户提供相同的密钥。
- 一种选择是使用经过身份验证的用户的电子邮件。但是,如果您的系统允许用户更改他们的电子邮件,那么这可能不是最佳选择。
- 系统中的每个用户都有自己的用户 ID。您可以使用它,因为它不随时间变化并且是独一无二的。
- 您还可以通过在创建用户时生成 guid 或 uuid来创建用户 lauchdarkly 密钥。您需要将其保存在数据库中。
当用户登录时,您需要初始化 LaunchDarkly SDK 并提供相应的密钥。
在反应:
import { withLDProvider } from 'launchdarkly-react-client-sdk';
export default withLDProvider({
clientSideID: 'your-client-side-id',
user: {
"key": getCurrentUser().id,
"name": getCurrentUser().name,
"email": getCurrentUser().email
},
options: { /* ... */ }
})(YourApp);
在纯 JavaScript 中:
const user = {
"key": getCurrentUser().id,
"name": getCurrentUser().name,
"email": getCurrentUser().email
};
const ldclient = LDClient.initialize('YOUR_CLIENT_SIDE_SDK', user, options = {
allAttributesPrivate: true
});
这getCurrentUser()
是为您的应用程序获取经过身份验证的用户详细信息的函数。
当用户注销时,请确保该用户的密钥不可用。LaunchDarkly的文档中描述了任何匿名用户的跟踪,为此可以使用不同的策略。管理匿名用户的最简单方法是不发送用户密钥。