Documentation menu
SDK

Install

Add the SDK to your backend and construct a client. Six languages are supported.

Add the package

bash
go get github.com/u2secured/u2auth-go

# Go records it in go.mod; commit that and go.sum.

Three of these packages are not published yet

Node.js, Python and Go install from npm, PyPI and the Go module proxy today. The C#, Java and PHP packages are written and tested, but they are not on NuGet, Maven Central or Packagist, so those three commands will not resolve — they are shown because they are the right commands once each package lands, not because they work today. Until then, call the REST endpoints directly or vendor the SDK source. Each caveat comes down as its package is published.

Python: pip, not pipx

pipx installs an application into its own virtualenv and exposes its command-line scripts. This package is a library with no console scripts, so a pipx install leaves nothing your backend can import. Use pip inside a virtualenv, or uv/poetry if you want a lock file. Reach for pipx only for standalone CLI tools.

Construct a client

Do this once at startup and reuse the client — each one holds a connection pool. Point base_url at your own host only if you are self-hosting.

main.go
import u2auth "github.com/u2secured/u2auth-go"

// Once at startup.
client := u2auth.NewClient("rka_your_api_key", nil)

Keep your API key server-side

An rka_ key can enrol users, remove enrolments and approve logins. Never ship it in a browser bundle, a mobile app, or anything else a user can read.

Next: send your first push

With the client constructed, pair a user and call requestPush. Enrolling users covers the pairing step, and Push approvals walks through requesting one and waiting for the answer.