PHPackages                             silverstripe/realme - 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. silverstripe/realme

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

silverstripe/realme
===================

Adds support to SilverStripe for authentication via RealMe (https://www.realme.govt.nz/)

6.0.3(3mo ago)9134.3k↓24.2%24[9 issues](https://github.com/silverstripe/silverstripe-realme/issues)[3 PRs](https://github.com/silverstripe/silverstripe-realme/pulls)2BSD-3-ClausePHPPHP ^8.3CI passing

Since Dec 8Pushed 1mo ago11 watchersCompare

[ Source](https://github.com/silverstripe/silverstripe-realme)[ Packagist](https://packagist.org/packages/silverstripe/realme)[ RSS](/packages/silverstripe-realme/feed)WikiDiscussions 6 Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (107)Used By (2)

Silverstripe Realme
===================

[](#silverstripe-realme)

[![CI](https://github.com/silverstripe/silverstripe-realme/actions/workflows/ci.yml/badge.svg)](https://github.com/silverstripe/silverstripe-realme/actions/workflows/ci.yml)[![Silverstripe supported module](https://camo.githubusercontent.com/9b7e93d393a01f6d3091fb30983b870aa863ef076858115faaa1c74b995854ec/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f73696c7665727374726970652d737570706f727465642d3030373143342e737667)](https://www.silverstripe.org/software/addons/silverstripe-commercially-supported-module-list/)

Adds support to Silverstripe for authentication and identity assertion via [RealMe](https://www.realme.govt.nz/).

This module provides the foundation to support a quick integration for a Silverstripe application with RealMe as an identity provider. This module requires extensive setup prior to being utilised effectively.

If integration with RealMe is wanted, it is best to get in touch with the RealMe team as early as possible. This can be accomplished by [getting in touch with the RealMe team](https://www.realme.govt.nz/realme-business/).

If you encounter any issues please [open a new issue here](https://github.com/silverstripe/silverstripe-realme/issues).

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

[](#installation)

```
composer require silverstripe/realme
```

Configuration of RealMe for your application
--------------------------------------------

[](#configuration-of-realme-for-your-application)

RealMe provide two testing environments and a production environment for you to integrate with. Access to these environments is strictly controlled, and more information on these can be found on the [RealMe Developers site](https://developers.realme.govt.nz/how-to-integrate/).

See [configuration documentation](https://docs.silverstripe.org/en/optional_features/realme/configuration) for environment and YML configuration required before the module can be used.

Providing RealMe login buttons
------------------------------

[](#providing-realme-login-buttons)

By default, the module provides an `Authenticator` class in SilverStripe, adding a new login form. If you want to provide your own separate login form just for RealMe, then the built-in templates can help with this. They have been designed to integrate as cleanly as possible with Silverstripe templates, but it is up to you whether you use them, or roll your own.

See the [templates documentation](https://docs.silverstripe.org/en/optional_features/realme/templates) for more information on using or modifying these.

Testing for authentication
--------------------------

[](#testing-for-authentication)

The `RealMeService` service object allows you to inject authentication where-ever it is required. For example, let's take a simple Controller that ensures that all users have a valid RealMe 'FLT' (a unique string that identifies a RealMe user, but is not their username):

```
use SilverStripe\Control\Controller;
use SilverStripe\Control\HTTPRequest;
use SilverStripe\RealMe\RealMeService;

class RealMeTestController extends Controller {
	/**
	 * @var RealMeService
	 */
	public $realMeService;

	private static $dependencies = array(
		'realMeService' => '%$SilverStripe\RealMe\RealMeService'
	);

	public function index(HTTPRequest $request) {
		// enforceLogin will redirect the user to RealMe if they're not authenticated, or return true if they are
		// authenticated with RealMe. It should only ever return 'false' if there was an error initialising config
		if($this->realMeService->enforceLogin($request)) {
			$userData = $this->realMeService->getUserData();

			printf("Congratulations, you're authenticated with a unique ID of '%s'!", $userData->SPNameID);
		} else {
			echo "There was an error while attempting to authenticate you.";
		}
	}
}
```

Appreciation
------------

[](#appreciation)

- Sincere thanks to Jackson (@jakxnz) for his work reviewing and updating pull requests.

###  Health Score

62

—

FairBetter than 99% of packages

Maintenance65

Regular maintenance activity

Popularity42

Moderate usage in the ecosystem

Community34

Small or concentrated contributor base

Maturity95

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

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

Every ~38 days

Recently: every ~1 days

Total

99

Last Release

100d ago

Major Versions

5.5.0-rc1 → 6.0.0-alpha12024-12-02

5.5.2 → 6.0.0-rc12025-05-19

5.5.3 → 6.0.22025-08-18

5.5.x-dev → 6.0.32026-02-04

5.x-dev → 6.0.x-dev2026-02-08

PHP version history (5 changes)3.0.0-rc1PHP &lt;7.2.0

4.2.0PHP ^7.3 || ^8.0

4.3.0-rc1PHP ^7.4 || ^8.0

5.0.0-beta1PHP ^8.1

6.0.0-alpha1PHP ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/b0cba8b534e20e6ab4fff555a97b237a18436ebca1446fc0b29c8a8b504038b9?d=identicon)[GuySartorelli](/maintainers/GuySartorelli)

![](https://www.gravatar.com/avatar/a25bc04c5720a36869d5a39c6449dde7eb43e19b7c8e666d5f632d6a9ab440b1?d=identicon)[emteknetnz](/maintainers/emteknetnz)

![](https://www.gravatar.com/avatar/afbb3dcc9ef29c1a6eedd6addcae5fce9ab1271915a85a4c349301b71237368d?d=identicon)[silverstripe-machine01](/maintainers/silverstripe-machine01)

![](https://www.gravatar.com/avatar/a496a763166447513522eeff7b822da348a006ce474e5224b1fddbd839c736dc?d=identicon)[madmatt](/maintainers/madmatt)

---

Top Contributors

[![emteknetnz](https://avatars.githubusercontent.com/u/4809037?v=4)](https://github.com/emteknetnz "emteknetnz (92 commits)")[![GuySartorelli](https://avatars.githubusercontent.com/u/36352093?v=4)](https://github.com/GuySartorelli "GuySartorelli (85 commits)")[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (50 commits)")[![robbieaverill](https://avatars.githubusercontent.com/u/5170590?v=4)](https://github.com/robbieaverill "robbieaverill (30 commits)")[![madmatt](https://avatars.githubusercontent.com/u/893117?v=4)](https://github.com/madmatt "madmatt (26 commits)")[![ScopeyNZ](https://avatars.githubusercontent.com/u/3260989?v=4)](https://github.com/ScopeyNZ "ScopeyNZ (20 commits)")[![dnsl48](https://avatars.githubusercontent.com/u/9313746?v=4)](https://github.com/dnsl48 "dnsl48 (8 commits)")[![sabina-talipova](https://avatars.githubusercontent.com/u/87288324?v=4)](https://github.com/sabina-talipova "sabina-talipova (8 commits)")[![indygriffiths](https://avatars.githubusercontent.com/u/32345766?v=4)](https://github.com/indygriffiths "indygriffiths (5 commits)")[![torleif](https://avatars.githubusercontent.com/u/67215?v=4)](https://github.com/torleif "torleif (4 commits)")[![andreaspiening](https://avatars.githubusercontent.com/u/24401847?v=4)](https://github.com/andreaspiening "andreaspiening (3 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (3 commits)")[![NightJar](https://avatars.githubusercontent.com/u/778003?v=4)](https://github.com/NightJar "NightJar (3 commits)")[![StephenMakrogianni](https://avatars.githubusercontent.com/u/42820868?v=4)](https://github.com/StephenMakrogianni "StephenMakrogianni (2 commits)")[![LABCAT](https://avatars.githubusercontent.com/u/9105153?v=4)](https://github.com/LABCAT "LABCAT (2 commits)")[![michalkleiner](https://avatars.githubusercontent.com/u/233342?v=4)](https://github.com/michalkleiner "michalkleiner (2 commits)")[![stevie-mayhew](https://avatars.githubusercontent.com/u/1953220?v=4)](https://github.com/stevie-mayhew "stevie-mayhew (1 commits)")[![elliot-sawyer](https://avatars.githubusercontent.com/u/354793?v=4)](https://github.com/elliot-sawyer "elliot-sawyer (1 commits)")[![flashbackzoo](https://avatars.githubusercontent.com/u/878176?v=4)](https://github.com/flashbackzoo "flashbackzoo (1 commits)")[![dhensby](https://avatars.githubusercontent.com/u/563596?v=4)](https://github.com/dhensby "dhensby (1 commits)")

---

Tags

hacktoberfestAuthenticationsilverstripesamlRealMeReal MeiGovt

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/silverstripe-realme/health.svg)

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

###  Alternatives

[silverstripe/mfa

Enable multi-factor authentication with fallback codes

10346.1k8](/packages/silverstripe-mfa)

PHPackages © 2026

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