PHPackages                             atwx/silverstripe-gate-manager - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. atwx/silverstripe-gate-manager

ActiveSilverstripe-vendormodule[Authentication &amp; Authorization](/categories/authentication)

atwx/silverstripe-gate-manager
==============================

A Silverstripe module to allow you to log into any of your Silverstripe sites from one place.

1.0(4mo ago)090—7.1%BSD-3-ClausePHPCI passing

Since Feb 5Pushed 4mo agoCompare

[ Source](https://github.com/atwx/silverstripe-gate-manager)[ Packagist](https://packagist.org/packages/atwx/silverstripe-gate-manager)[ RSS](/packages/atwx-silverstripe-gate-manager/feed)WikiDiscussions main Synced today

READMEChangelog (1)Dependencies (8)Versions (2)Used By (0)

Silverstripe Gate Manager
=========================

[](#silverstripe-gate-manager)

A Silverstripe CMS module that allows you to manage and log into multiple Silverstripe sites from a central location using secure JWT-based authentication.

Overview
--------

[](#overview)

Silverstripe Gate Manager provides a centralized dashboard for managing multiple Silverstripe installations. It generates RSA key pairs for each managed site and creates secure JWT tokens that enable seamless, passwordless login to any of your registered sites.

To log into another Silverstripe site, you should install and configure the [Silverstripe Gate Client](https://github.com/atwx/silverstripe-gate-client) module on it.

Installation
------------

[](#installation)

Install via Composer:

```
composer require atwx/silverstripe-gate-manager
```

After installation, run:

```
vendor/bin/sake dev/build flush=all
```

Configuration
-------------

[](#configuration)

### Manager Site (This Module)

[](#manager-site-this-module)

No additional configuration required. The module automatically:

- Generates RSA key pairs for each managed site
- Creates JWT tokens with configurable expiration
- Provides secure login URLs

#### Optional Configuration

[](#optional-configuration)

You can customize cryptography settings:

```
Atwx\SilverGateManager\Services\CryptographyService:
  # JWT configuration
  jwt_algorithm: 'RS256'      # Supported: RS256, RS384, RS512
  jwt_expiration_seconds: 60  # Token validity period
```

### Client Sites

[](#client-sites)

On each site you want to manage, install the SilverGate Client module:

```
composer require atwx/silverstripe-gate-client
```

Then configure it with the public key from the manager:

1. In the SilverGate Manager admin, navigate to "SilverGate Manager"
2. Create or edit a managed site
3. Go to the "Help" tab
4. Copy the provided YAML configuration
5. Add it to your client site's `app/_config/config.yml`

Example client configuration:

```
Atwx\SilverGateClient\Services\TokenService:
  public_key: |
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...
    -----END PUBLIC KEY-----
```

Usage
-----

[](#usage)

### Adding a Managed Site

[](#adding-a-managed-site)

1. Log into your Silverstripe admin
2. Navigate to "SilverGate Manager" in the admin menu
3. Click "Add Managed Site"
4. Enter the domain name (e.g., `example.com`)
5. Save - a key pair is automatically generated
6. Copy the configuration from the "Help" tab to your client site

### Logging Into a Managed Site

[](#logging-into-a-managed-site)

**From the Admin Interface:**

1. Navigate to "SilverGate Manager"
2. Find the site you want to access
3. Click the "Login" button next to the site

**From the Edit Form:**

1. Open the managed site record
2. Click the "Login" button in the actions area

The system will redirect you to the client site with a secure JWT token, automatically logging you in.

### Regenerating Key Pairs

[](#regenerating-key-pairs)

If a key pair is compromised or needs to be rotated:

1. Open the managed site record
2. Click "Regenerate Key Pair" in the actions area
3. Confirm the action
4. Update the public key configuration on the client site

⚠️ **Warning**: Regenerating a key pair will invalidate the previous keys. Update the client site configuration immediately.

Permissions
-----------

[](#permissions)

The module provides three permission levels:

PermissionDescriptionGrants Access To`SILVERGATE_VIEW_SITES`View managed sitesRead-only access to site list`SILVERGATE_EDIT_SITES`Create/Edit sitesCreate, edit, delete sites; regenerate keys`SILVERGATE_LOGIN`Login to sitesUse login functionality to access managed sitesAssign permissions in **Security &gt; Groups** to control user access.

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance74

Regular maintenance activity

Popularity12

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity34

Early-stage or recently created project

 Bus Factor1

Top contributor holds 93.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

148d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/64d979993815fa2d2ea95b3fd72b4f43e95a631ce569f4f1c0330786971b5fc2?d=identicon)[adiwidjaja](/maintainers/adiwidjaja)

![](https://avatars.githubusercontent.com/u/7694808?v=4)[Jan Metzger](/maintainers/Zazama)[@Zazama](https://github.com/Zazama)

![](https://www.gravatar.com/avatar/63d164bab71fc011430a89319c7e170995fa494d7d122feaed5a370f39c89d12?d=identicon)[HenrikBormann](/maintainers/HenrikBormann)

---

Top Contributors

[![Zazama](https://avatars.githubusercontent.com/u/7694808?v=4)](https://github.com/Zazama "Zazama (14 commits)")[![HenrikBormann](https://avatars.githubusercontent.com/u/88386045?v=4)](https://github.com/HenrikBormann "HenrikBormann (1 commits)")

---

Tags

silverstripecmsmoduleloginmanagementsitessilverstripe-gateatwx

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/atwx-silverstripe-gate-manager/health.svg)

```
[![Health](https://phpackages.com/badges/atwx-silverstripe-gate-manager/health.svg)](https://phpackages.com/packages/atwx-silverstripe-gate-manager)
```

###  Alternatives

[silverstripe/cms

The SilverStripe Content Management System

5253.6M1.4k](/packages/silverstripe-cms)[silverstripe/mfa

Enable multi-factor authentication with fallback codes

11364.7k11](/packages/silverstripe-mfa)[axyr/silverstripe-adminlogin

Use a custom login screen to log in to the admin section

165.8k](/packages/axyr-silverstripe-adminlogin)[bigfork/silverstripe-oauth-login

SilverStripe logins via OAuth2, using the PHP League's OAuth2 client

1998.5k2](/packages/bigfork-silverstripe-oauth-login)[silverstripe/contentreview

Flags pages for periodical author review (incl. reporting)

23269.4k5](/packages/silverstripe-contentreview)[froog/silvergraph

Generates data model visualisations from SilverSripe DataObjects, displaying database fields, relations and ancestry

425.7k](/packages/froog-silvergraph)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
