PHPackages                             ajgl/session-concurrency - 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. [Security](/categories/security)
4. /
5. ajgl/session-concurrency

Abandoned → [ajgl/session-concurrency](/?search=ajgl%2Fsession-concurrency)Library[Security](/categories/security)

ajgl/session-concurrency
========================

Symfony session authentication strategy to control concurrency

0.3.1(11y ago)02271MITPHPPHP &gt;=5.3.3

Since Jan 17Pushed 11y ago1 watchersCompare

[ Source](https://github.com/ajgarlag/AjglSessionConcurrency)[ Packagist](https://packagist.org/packages/ajgl/session-concurrency)[ Docs](https://github.com/ajgarlag/AjglSessionConcurrency)[ RSS](/packages/ajgl-session-concurrency/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (4)Versions (6)Used By (1)

AjglSessionConcurrency
======================

[](#ajglsessionconcurrency)

The AjglSessionConcurrency component allows you to detect and control concurrent sessions for the same user.

PR Reference
------------

[](#pr-reference)

This feature has been submitted to the Symfony project in the [PR #12810](https://github.com/symfony/symfony/pull/12810).

All your feedback and contributions to this repository will help me to improve the referenced PR.

Usage
-----

[](#usage)

You have to override the default session authentication strategy with a composite strategy chains:

1. The concurrency control strategy
2. The default strategy
3. The register strategy

If you want to expire old sessions when the maximun number of allowed sessions is reached, you have to subscribe the `SessionRegistryExpirationListener` to the `kernel.response` event of your application HTTP kernel.

Symfony Bundle
--------------

[](#symfony-bundle)

If you need to integrate this library into your Symfony Framework app, you can install the [AjglSessionConcurrencyBundle](https://github.com/ajgarlag/AjglSessionConcurrencyBundle)

License
-------

[](#license)

This component is under the MIT license. See the complete license in the LICENSE file.

Badges
------

[](#badges)

- **Travis CI**: [![Build Status](https://camo.githubusercontent.com/55da6d1225939be4275bd8f3c236cbac8cc266663efccee2379b86cd73e21a5a/68747470733a2f2f7472617669732d63692e6f72672f616a6761726c61672f416a676c53657373696f6e436f6e63757272656e63792e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/ajgarlag/AjglSessionConcurrency)
- **Poser Latest Stable Version:** [![Latest Stable Version](https://camo.githubusercontent.com/3e5aa26b59211096b9ef9a22acf3a3be27c681ab9148083c480d5cd5efc00aad/68747470733a2f2f706f7365722e707567782e6f72672f616a676c2f73657373696f6e2d636f6e63757272656e63792f762f737461626c652e706e67)](https://packagist.org/packages/ajgl/session-concurrency)
- **Poser Latest Unstable Version** [![Latest Unstable Version](https://camo.githubusercontent.com/944b6028a8254a8189a9d55b0c481461e8cc1ace43c3953571a34332520b5b3b/68747470733a2f2f706f7365722e707567782e6f72672f616a676c2f73657373696f6e2d636f6e63757272656e63792f762f756e737461626c652e706e67)](https://packagist.org/packages/ajgl/session-concurrency)
- **Poser Total Downloads** [![Total Downloads](https://camo.githubusercontent.com/18cc59850cebb1756ae33c760577885c23f8c68b6ea69c49757f7d8f69e1b47b/68747470733a2f2f706f7365722e707567782e6f72672f616a676c2f73657373696f6e2d636f6e63757272656e63792f646f776e6c6f6164732e706e67)](https://packagist.org/packages/ajgl/session-concurrency)
- **Poser Monthly Downloads** [![Montly Downloads](https://camo.githubusercontent.com/cbbaea60397f9d4f1dcf110605059ed20196273f54495a527b8ceee11611c02e/68747470733a2f2f706f7365722e707567782e6f72672f616a676c2f73657373696f6e2d636f6e63757272656e63792f642f6d6f6e74686c792e706e67)](https://packagist.org/packages/ajgl/session-concurrency)
- **Poser Daily Downloads** [![Daily Downloads](https://camo.githubusercontent.com/712463bcaeef148d2f2044a7cfb6dd9bd4663db50e3db0f3cce82e5035a87fb7/68747470733a2f2f706f7365722e707567782e6f72672f616a676c2f73657373696f6e2d636f6e63757272656e63792f642f6461696c792e706e67)](https://packagist.org/packages/ajgl/session-concurrency)
- **Poser License** [![License](https://camo.githubusercontent.com/5085f38de736e5dec4aa8f9725c5127ddebba94e5a2c924fbda22f3bdf300c19/68747470733a2f2f706f7365722e707567782e6f72672f616a676c2f73657373696f6e2d636f6e63757272656e63792f6c6963656e73652e706e67)](https://packagist.org/packages/ajgl/session-concurrency)
- **Scrutinizer Quality** [![Scrutinizer Code Quality](https://camo.githubusercontent.com/0b35312a13661a404f77cec8f63171551cd6b82fbf2529c3c96f4d679ab30268/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f616a6761726c61672f416a676c53657373696f6e436f6e63757272656e63792f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/ajgarlag/AjglSessionConcurrency/?branch=master)
- **Scrutinizer Code Coverage** [![Code Coverage](https://camo.githubusercontent.com/25a46c7387a93c58ae7c83cd3f199710739747b2bfc571fa67046e8ff6c4fc28/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f616a6761726c61672f416a676c53657373696f6e436f6e63757272656e63792f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/ajgarlag/AjglSessionConcurrency/?branch=master)
- **SensioLabs Insight Quality** [![SensioLabsInsight](https://camo.githubusercontent.com/42945de7449fbdf69c3c840c0a770fbc5fd06f8425f2711d341c9e59dbe9909a/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f36383438303965322d663437332d343636332d623334302d3639616630396430373038382f6d696e692e706e67)](https://insight.sensiolabs.com/projects/684809e2-f473-4663-b340-69af09d07088)
- **VersionEye Dependency Status** [![Dependency Status](https://camo.githubusercontent.com/09aec422cc608e63ae2c93bc1bea03003fee4f553838db560cac364a10cd5d2e/68747470733a2f2f7777772e76657273696f6e6579652e636f6d2f7068702f616a676c3a73657373696f6e2d636f6e63757272656e63792f6465762d6d61737465722f62616467652e706e67)](https://www.versioneye.com/php/ajgl:session-concurrency/dev-master)

About
-----

[](#about)

AjglSessionConcurrency is an [ajgarlag](http://aj.garcialagar.es) initiative.

Reporting an issue or a feature request
---------------------------------------

[](#reporting-an-issue-or-a-feature-request)

Issues and feature requests are tracked in the [Github issue tracker](https://github.com/ajgarlag/AjglSessionConcurrency/issues).

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Every ~17 days

Total

5

Last Release

4070d ago

### Community

Maintainers

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

---

Top Contributors

[![ajgarlag](https://avatars.githubusercontent.com/u/388184?v=4)](https://github.com/ajgarlag "ajgarlag (36 commits)")

---

Tags

concurrencysymfonysecuritysession

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/ajgl-session-concurrency/health.svg)

```
[![Health](https://phpackages.com/badges/ajgl-session-concurrency/health.svg)](https://phpackages.com/packages/ajgl-session-concurrency)
```

###  Alternatives

[gregwar/captcha-bundle

Captcha bundle

3524.7M32](/packages/gregwar-captcha-bundle)[paragonie/anti-csrf

Paragon Initiative's Anti-CSRF Security Library

307200.6k5](/packages/paragonie-anti-csrf)[rezzza/security-bundle

Signed requests check

1753.6k](/packages/rezzza-security-bundle)

PHPackages © 2026

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