{"id":20675558,"url":"https://github.com/bitwarden/passwordless-java","last_synced_at":"2025-04-19T20:34:14.271Z","repository":{"id":193118750,"uuid":"685903408","full_name":"bitwarden/passwordless-java","owner":"bitwarden","description":"Bitwarden Passwordless.dev Java SDK.","archived":false,"fork":false,"pushed_at":"2025-04-07T14:05:25.000Z","size":225,"stargazers_count":13,"open_issues_count":5,"forks_count":5,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-15T16:26:46.643Z","etag":null,"topics":["bitwarden","java"],"latest_commit_sha":null,"homepage":"https://bitwarden.com/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bitwarden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-09-01T09:19:16.000Z","updated_at":"2025-04-04T11:53:27.000Z","dependencies_parsed_at":"2023-12-24T16:23:54.710Z","dependency_job_id":"7141b2dd-3068-4648-8d9d-36c592bbe090","html_url":"https://github.com/bitwarden/passwordless-java","commit_stats":null,"previous_names":["passwordless/passwordless-java","bitwarden/passwordless-java"],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fpasswordless-java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fpasswordless-java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fpasswordless-java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bitwarden%2Fpasswordless-java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bitwarden","download_url":"https://codeload.github.com/bitwarden/passwordless-java/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249794943,"owners_count":21326776,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitwarden","java"],"created_at":"2024-11-16T21:09:48.853Z","updated_at":"2025-04-19T20:34:14.255Z","avatar_url":"https://github.com/bitwarden.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"![CI](https://github.com/bitwarden/passwordless-java/actions/workflows/ci.yml/badge.svg)\n[![Maven Central](https://img.shields.io/maven-central/v/com.bitwarden/passwordless.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.bitwarden%22%20AND%20a:%22passwordless%22)\n\n\n# Passwordless Java SDK\n\nThe official [Bitwarden Passwordless.dev](https://passwordless.dev/) Java library, for Java 8+ runtime.\n\n## Installation\n\n**Maven**: add to the `\u003cdependencies\u003e` in *pom.xml* file:\n\n```xml\n\n\u003cdependency\u003e\n    \u003cgroupId\u003ecom.bitwarden\u003c/groupId\u003e\n    \u003cartifactId\u003epasswordless\u003c/artifactId\u003e\n    \u003cversion\u003e1.2.3\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\n**Gradle**: add to the `dependencies` in *gradle.build* file:\n\n```groovy\nimplementation group: 'com.bitwarden', name: 'passwordless', version: '1.2.3'\n```\n\n### Dependencies\n\n- [Apache HttpClient][apache-http-client] for HTTP API\n- [FasterXML jackson-databind][fasterxml-jackson-databind] for JSON (de)serialization\n\n## Getting Started\n\nFollow the [Get started guide][api-docs].\n\n### Create `PasswordlessClient` instance:\n\n```java\nimport com.bitwarden.passwordless.*;\n\nimport java.io.*;\n\npublic class PasswordlessJavaSdkExample implements Closeable {\n\n    private final PasswordlessClient client;\n\n    public PasswordlessClientExample() {\n        PasswordlessOptions options = PasswordlessOptions.builder()\n                .apiSecret(\"your_api_secret\")\n                .build();\n\n        client = PasswordlessClientBuilder.create(options)\n                .build();\n    }\n\n    @Override\n    public void close() throws IOException {\n        client.close();\n    }\n}\n```\n\n**Note:** You need to close the underlying http client resources when you are done\nusing `PasswordlessClient` with `close` method.\n\n### Register a passkey\n\n```java\nimport com.bitwarden.passwordless.*;\nimport com.bitwarden.passwordless.error.*;\nimport com.bitwarden.passwordless.model.*;\n\nimport java.io.*;\nimport java.util.*;\n\npublic class PasswordlessJavaSdkExample {\n\n    private final PasswordlessClient client;\n\n    // Constructor\n\n    public String getRegisterToken(String alias) throws PasswordlessApiException, IOException {\n\n        // Get existing userid from session or create a new user.\n        String userId = UUID.randomUUID().toString();\n\n        // Options to give the Api\n        RegisterToken registerToken = RegisterToken.builder()\n                // your user id\n                .userId(userId)\n                // e.g. user email, is shown in browser ui\n                .username(alias)\n                // Optional: Link this userid to an alias (e.g. email)\n                .aliases(Arrays.asList(alias))\n                .build();\n\n        RegisteredToken response = client.registerToken(registerToken);\n\n        // return this token\n        return response.getToken();\n    }\n}\n```\n\n### Verify user\n\n```java\nimport com.bitwarden.passwordless.*;\nimport com.bitwarden.passwordless.error.*;\nimport com.bitwarden.passwordless.model.*;\n\nimport java.io.*;\n\npublic class PasswordlessJavaSdkExample {\n\n    private final PasswordlessClient client;\n\n    // Constructor\n\n    public VerifiedUser verifySignInToken(String token) throws PasswordlessApiException, IOException {\n\n        VerifySignIn signInVerify = VerifySignIn.builder()\n                .token(token)\n                .build();\n\n        // Sign the user in, set a cookie, etc,\n        return client.signIn(signInVerify);\n    }\n}\n```\n\n### Customization\n\nCustomize `PasswordlessOptions` by providing `apiSecret` with your Application's Private API Key.\nYou can also change the `apiUrl` if you prefer to self-host.\n\nCustomize `PasswordlessClientBuilder` by providing `httpClient` [CloseableHttpClient][apache-http-client] instance\nand `objectMapper` [ObjectMapper][fasterxml-jackson-databind].\n\n### Examples\n\nSee [Passwordless Example](examples/spring-boot-3-jdk-17) for Spring Boot 3 application using Java 17 runtime.\n\n## Documentation\n\nFor a comprehensive list of examples, check out the [API documentation][api-docs].\n\n## Contributing\n\nThis library compiles to Java 8 compatible runtime and requires minimum JDK 8 installed.\n\nNewer JDK are still backwards compatible to version 8, so you are free to use any of the JDK version - tested up to\nversion 20.\n\nDownload and install [JDK 8](https://adoptium.net/temurin/releases/?version=8) if you do not have compatible JDK.\n\nThe `JAVA_HOME` environment variable needs to contain installed JDK path.\n\nBuild using Maven wrapper:\n\n```shell\n./mvnw clean install\n```\n\n(Or `mvwnw.cmd` for Windows)\n\n[api-docs]:https://docs.passwordless.dev/guide/get-started.html\n\n[apache-http-client]:https://hc.apache.org/httpcomponents-client-5.2.x/index.html\n\n[fasterxml-jackson-databind]:https://github.com/FasterXML/jackson-databind\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwarden%2Fpasswordless-java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitwarden%2Fpasswordless-java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitwarden%2Fpasswordless-java/lists"}