worldnewsgroup / serverless-session-handler
Enable PHP sessions using DynamoDB in Serverless
Package info
github.com/bmenking-wng/serverless-session-handler
pkg:composer/worldnewsgroup/serverless-session-handler
v1.0.5
2026-02-20 16:19 UTC
Requires
- php: >=8.1
- aws/aws-sdk-php: ^3.283
Requires (Dev)
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ~2.6
- vlucas/phpdotenv: ^5.5
README
Provides a PHP session handler for AWS DynamoDB when hosting websites on Serverless.
Installation
Installation is easy via Composer:
$ composer require worldnewsgroup/serverless-session-handler
or add it manually to your composer.json.
Usage
Create a DynamoDB table with the following defintion (serverless resource definition):
resources: Resources: sessionTable: Type: AWS::DynamoDB::Table Properties: #BillingMode: PAY_PER_REQUEST TableName: ${self:service}-sessions AttributeDefinitions: - AttributeName: id AttributeType: S KeySchema: - AttributeName: id KeyType: HASH
Verify the Serverless IAM roles or permissions are correct for connecting to that DynamoDB.
provider: iamRoleStatements: - Effect: Allow Action: - dynamodb:GetItem - dynamodb:PutItem - dynamodb:DeleteItem - dynamodb:DescribeTable Resource: - "Fn::GetAtt": [ sessionTable, Arn ]
In code, set up the handler. Use the standard access methods for PHP sessions.
use WorldNewsGroup\Serverless\ServerlessSession; require('vendor/autoload.php'); // put as close to the top (just under the require('vendor/autoload.php') is best) as possible ServerlessSession::getInstance('<dynamodb_table_name>', '<aws region>'); ... // set the Session variable token to 'jwt' $_SESSION['token'] = 'jwt';