An open API service indexing awesome lists of open source software.

https://github.com/oidc-mytoken/server

Mytoken is a web service to obtain OpenID Connect Access Tokens in an easy but secure way for extended periods of time and across multiple devices.
https://github.com/oidc-mytoken/server

myproxy mytoken oidc oidc-agent oidc-token oidc-token-management openid openid-connect

Last synced: about 1 month ago
JSON representation

Mytoken is a web service to obtain OpenID Connect Access Tokens in an easy but secure way for extended periods of time and across multiple devices.

Awesome Lists containing this project

README

          

![mytoken logo](mytoken.png)

[![License](https://img.shields.io/github/license/oidc-mytoken/server.svg)](https://github.com/oidc-mytoken/server/blob/master/LICENSE)
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/oidc-mytoken/server)
[![Go Report](https://goreportcard.com/badge/github.com/oidc-mytoken/server)](https://goreportcard.com/report/github.com/oidc-mytoken/server)
[![DeepSource](https://deepsource.io/gh/oidc-mytoken/server.svg/?label=active+issues&show_trend=true)](https://deepsource.io/gh/oidc-mytoken/server/?ref=repository-badge)
[![Release date](https://img.shields.io/github/release-date/oidc-mytoken/server.svg)](https://github.com/oidc-mytoken/server/releases/latest)
[![Release version](https://img.shields.io/github/release/oidc-mytoken/server.svg)](https://github.com/oidc-mytoken/server/releases/latest)

# mytoken

`Mytoken` is a web service to obtain OpenID Connect Access Tokens in an easy but secure way for extended periods of time
and across multiple devices. In particular, `mytoken` was developed to provide OIDC Access Tokens to long-running
compute jobs.

Access Tokens can be obtained via so-called **`mytokens`**: A new token type that can be easily used as a Bearer token
from any device. These `mytokens` can be restricted according to the particular use case to only allow the needed
privileges.

`Mytoken` focuses on integration with the command line through our
[command line client](https://github.com/oidc-mytoken/client)

but also offers a web interface. A demo instance (using the prerel branch) is available
at [https://mytoken.data.kit.edu/](https://mytoken.data.kit.edu/).
For Production use [https://mytok.eu](https://mytok.eu)
`Mytoken` is a central web service with the goal to easily obtain OpenID Connect access tokens across devices.

Documentation is available at [https://mytoken-docs.data.kit.edu/](https://mytoken-docs.data.kit.edu/).

A go library for interacting with the mytoken server can be found
at [https://github.com/oidc-mytoken/lib](https://github.com/oidc-mytoken/lib).

## Building

### Prerequisites

- Go 1.25+
- Node.js 22+ (for frontend)
- npm 9+

### Building the Frontend

The web interface is built with SvelteKit. To build it:

```bash
# Using the provided script (recommended)
./scripts/build-frontend.sh

# Or manually
cd frontend
npm install
npm run build
cp -r build/* ../internal/server/spa/dist/
```

### Building the Server

```bash
# Build the server (requires frontend to be built first)
go build ./cmd/mytoken-server

# Build the setup tool
go build ./cmd/mytoken-server/mytoken-setup
```

### Development

For frontend development with hot reload:

```bash
cd frontend
npm install
npm run dev
```

The dev server runs at http://localhost:5173 and proxies API requests to the Go backend at http://localhost:8000.

See [frontend/README.md](frontend/README.md) for more details.