使用 Go SDK 激活 Okta 因子

Okta factor activation using Go SDK

documentation指定此代码激活一个因子:

...
ctx, client, err := okta.NewClient(context, okta.WithOrgUrl("https://{yourOktaDomain}"), okta.WithToken("{apiToken}"))

factor, resp, err := client.Factor.ActivateFactor(user.Id, factor.Id, nil)
...

但实际上我需要做一些改变:

...
ctx, client, err := okta.NewClient(context, okta.WithOrgUrl("https://{yourOktaDomain}"), okta.WithToken("{apiToken}"))


activationRequest := *okta.NewActivateFactorRequest()

//What information should the activationRequest be completed with? 
//Is it completely necessary?

factor, resp, err := client.UserFactor.ActivateFactor(ctx, userID, factorID, activationRequest, nil)
...

activationRequest的类型是:

type ActivateFactorRequest struct {
    Attestation      string `json:"attestation,omitempty"`
    ClientData       string `json:"clientData,omitempty"`
    PassCode         string `json:"passCode,omitempty"`
    RegistrationData string `json:"registrationData,omitempty"`
    StateToken       string `json:"stateToken,omitempty"`
}

这里的主要问题是:激活请求activationRequest应该用什么信息来完成?

由于 Okta SDK for Go 的文档似乎并不完整,我不知道在哪里可以找到更多关于激活该因子的过程的参考资料。

任何帮助将不胜感激,谢谢!

我想通了。本期

...
ctx, client, err := okta.NewClient(context, okta.WithOrgUrl("https://{yourOktaDomain}"), okta.WithToken("{apiToken}"))


activationRequest := *okta.NewActivateFactorRequest()
activationRequest.PassCode = passCode // The access code sent to your email

factor, resp, err := client.UserFactor.ActivateFactor(ctx, userID, factorID, activationRequest, nil)
...

activationRequest 中不需要更多信息来激活电子邮件因素