Java
对应的官方页面地址
入门
1、将我们的包的依赖项添加到您的 pom.xml
中:
<dependency>
<groupId>com.bitwarden</groupId>
<artifactId>passwordless</artifactId>
<version>1.0.5</version>
</dependency>
示例
此 Java 实现与 Java 8 及更高版本兼容。注册函数可能看起来像这样:
创建 PasswordlessClient
实例:
PasswordlessClient
实例:import com.bitwarden.passwordless.*;
import java.io.*;
public class PasswordlessJavaSdkExample implements Closeable {
private final PasswordlessClient client;
public PasswordlessClientExample() {
PasswordlessOptions options = PasswordlessOptions.builder()
.apiSecret("your_api_secret")
.build();
client = PasswordlessClientBuilder.create(options)
.build();
}
@Override
public void close() throws IOException {
client.close();
}
}
注意:使用带有 close
方法的 PasswordlessClient
后,需要关闭底层 http 客户端资源。
注册通行密钥
import com.bitwarden.passwordless.*;
import com.bitwarden.passwordless.error.*;
import com.bitwarden.passwordless.model.*;
import java.io.*;
import java.util.*;
public class PasswordlessJavaSdkExample {
private final PasswordlessClient client;
// 构造函数
public String getRegisterToken(String alias) throws PasswordlessApiException, IOException {
// 从会话中获取现有用户 ID 或创建新用户
String userId = UUID.randomUUID().toString();
// 提供给 Api 的选项
RegisterToken registerToken = RegisterToken.builder()
// 您的用户 id
.userId(userId)
// 例如用户电子邮件地址,将显示在浏览器 UI 中
.username(alias)
// 可选:将此用户 ID 链接到别名(例如电子邮件地址)
.aliases(Arrays.asList(alias))
.build();
RegisteredToken response = client.registerToken(registerToken);
// 返回此令牌
return response.getToken();
}
}
验证用户
import com.bitwarden.passwordless.*;
import com.bitwarden.passwordless.error.*;
import com.bitwarden.passwordless.model.*;
import java.io.*;
public class PasswordlessJavaSdkExample {
private final PasswordlessClient client;
// Constructor
public VerifiedUser verifySignInToken(String token) throws PasswordlessApiException, IOException {
VerifySignIn signInVerify = VerifySignIn.builder()
.token(token)
.build();
// 用户登录、设置 cookie 等
return client.signIn(signInVerify);
}
}
自定义
通过向 apiSecret
提供您的应用程序的私有 API 密钥来自定义 PasswordlessOptions
。如果您喜欢自行托管,也可以更改 apiUrl
。
通过提供 httpClient
CloseableHttpClient 实例和 objectMapper
ObjectMapper 来自定义PasswordlessClientBuilder
。
示例
有关使用此库的 Spring Boot 3 应用程序,请参阅 Passwordless Java 示例。
最后更新于