Nexmo 2FA 不工作/被窃听,依赖项不包括接收代码和验证代码所需的一些方法

Nexmo 2FA is not working/ is bugged, dependency doesn't include some methods needed for recieving the code and verifying it

https://dashboard.nexmo.com/getting-started/verify 上显示的教程说一切都应该通过编码工作:

1   NexmoClient client = NexmoClient.Builder()
2     .apiKey("HIDDEN-CODE-I-CANNOT-SHOW")
3     .apiSecret("HIDDEN-CODE-I-CANNOT-SHOW")
4     .build();
5   VerifyClient verifyClient = client.getVerifyClient();
6
7   VerifyRequest request = new VerifyRequest("HIDDEN-CODE-I-CANNOT-SHOW", "HIDDEN-CODE-I-CANNOT-SHOW");
8   request.setLength(4);
9   
10   VerifyResponse response = verifyClient.verify(request);
11
12   if (response.getStatus() == VerifyStatus.OK) {
13       System.out.printf("RequestID: %s", response.getRequestId());
14   } else {
15       System.out.printf("ERROR! %s: %s",
16         response.getStatus(),
17         response.getErrorText()
18       );
19   }

我的problem/bug是下一个:

request.SETLENGHT(4);
response.GETSTATUS();

这两行代码(8-12)是红色的(只有大写字母的字符)。如果我将光标放在它们上面,它会显示消息“无法解析符号 'setLength'”和“无法解析符号 'getStatus'[=42=” ]”。

我以为有人和我有同样的问题,但事实并非如此。我已经进入了nexmo库的开发者的存储库,这两个函数写在那里(我试图说它们存在),但在我的程序中它们没有成立。

这些是开发人员的存储库:

  1. https://github.com/Nexmo/nexmo-java
  2. https://github.com/Nexmo/nexmo-java/blob/master/src/main/java/com/nexmo/client/verify/VerifyRequest.java
  3. https://github.com/vonage/vonage-java-sdk

在他们说的第一个中,我引用 “我们建议用户开始迁移到 Vonage Java 服务器 SDK。如果您有任何问题,请随时与我们联系在 devrel@vonage.com 或通过我们的 Community Slack 在 https://developer.nexmo.com/community/slack" 正如他们所说我确实尝试迁移到项目的新版本但是那两条线的问题也保留在那里。

第二个 link 显示了为 nexmo 库编写的一些函数。从第 315 行到第 323 行你可以看到函数“.setLenght”确实存在,因为开发人员为它创建了一个构建器,这里是从 link:

复制粘贴的代码
    /**
     * @param length (optional) The length of the verification code to be sent to the user. Must be either 4 or 6. Use
     *               -1 to use the default value.
     * @return {@link Builder}
     */
    public Builder length(Integer length) {
        this.length = length;
        return this;
    }

可能是什么问题?图书馆?兼容性? 我正在使用 Apache Maven 3.6.3。这是我的 pom:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.4.2</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.2FA</groupId>
        <artifactId>Auth-Two-Steps</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>Auth-Two-Steps</name>
        <description>Mini project to learn authentication</description>
        <properties>
            <java.version>11</java.version>
        </properties>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
            </dependency>
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>com.nexmo</groupId>
                <artifactId>client</artifactId>
                <version>5.6.0</version>
            </dependency>
    
    
            <dependency>
                <groupId>com.2FA</groupId>
                <artifactId>Auth-Two-Steps</artifactId>
                <version>0.0.1-SNAPSHOT</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

这些片段可以在 nexmo 4.x SDK 上运行,但在 5.x Nexmo SDK 和 6.x Vonage SDK 上会失败,需要更新。请参阅 code snippet - 它将向您展示如何管理一切。 setLength 似乎在将构建器模式添加到验证请求时删除了它,您应该改用构建器模式

例如

VerifyRequest request = VerifyRequest.builder("12018675309","acme").length(6).build();

getStatus() 看起来它应该可以工作 - 如果您仍然遇到问题,您可能需要确保它正在导入。