SSX
  • SSX
  • ⚡SSX Quickstart
    • SSX Server Quickstart
  • 🛠️Configuring SSX
    • Configuring SSX Server
    • Configuring SSX with React
    • Configuring SSX for Serverless
  • 📊Accessing the SSX Dashboard
  • 📈Scaling SSX Server
  • Tutorials
    • Moving From SIWE to SSX
    • Using SSX with Auth.js
    • Using SSX with NextAuth
    • Build a Token-Gated Dapp
    • From Email Login to SIWE
  • appendix
    • DAO Login Workflow
    • SSX: How It Works
  • Reference
    • SSX API Reference
      • configoverrides
      • extrafields
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • issxconnected
        • afterconnecthookspromise
        • aftersignin
        • api
        • applyextensions
        • builder
        • config
        • extensions
        • isextensionenabled
        • provider
        • signin
        • signout
        • ssxserverlogin
        • ssxservernonce
      • siweconfig
      • ssx
        • constructor
        • address
        • chainid
        • connection
        • resolveens
        • rpcproviders
        • session
        • signin
        • signout
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxclientconfig
        • enabledaologin
        • providers
        • resolveens
        • siweconfig
      • ssxclientproviders
        • rpc
        • server
        • web3
      • ssxclientsession
      • ssxcloudflareprovider
      • ssxconfig
        • enabledaologin
        • providers
        • resolveens
        • siweconfig
      • ssxconnected
        • constructor
        • afterconnecthookspromise
        • aftersignin
        • api
        • applyextensions
        • builder
        • config
        • extensions
        • isextensionenabled
        • provider
        • signin
        • signout
        • ssxserverlogin
        • ssxservernonce
      • ssxcustomprovider
      • ssxensconfig
        • resolve
        • resolveonserver
      • ssxensdata
        • avatarurl
        • domain
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxextension
        • afterconnect
        • aftersignin
        • defaultactions
        • extrafields
        • namespace
        • targetedactions
      • ssxgenericprovider
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxinit
        • constructor
        • connect
        • extend
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxproviders
        • rpc
        • server
        • web3
      • ssxproviderserver
      • ssxproviderweb3
        • driver
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserverhost
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsession
    • SSX Core API Reference
      • configoverrides
      • extrafields
      • getprovider
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • issxconnected
        • afterconnecthookspromise
        • aftersignin
        • api
        • applyextensions
        • builder
        • config
        • extensions
        • isextensionenabled
        • provider
        • signin
        • signout
        • ssxserverlogin
        • ssxservernonce
      • siweconfig
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxclientconfig
        • enabledaologin
        • providers
        • resolveens
        • siweconfig
      • ssxclientproviders
        • rpc
        • server
        • web3
      • ssxclientsession
      • ssxcloudflareprovider
      • ssxcookieoptions
        • httponly
        • samesite
        • secure
        • signed
      • ssxcustomprovider
      • ssxensconfig
        • resolve
        • resolveonserver
      • ssxensdata
        • avatarurl
        • domain
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxeventlogtypes
      • ssxexpresssessionstoreprovider
      • ssxextension
        • afterconnect
        • aftersignin
        • defaultactions
        • extrafields
        • namespace
        • targetedactions
      • ssxgenericprovider
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxlog
      • ssxlogfields
        • content
        • timestamp
        • type
        • userid
      • ssxmetricsprovider
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxpost
      • ssxproviderserver
      • ssxproviderweb3
        • driver
      • ssxredissessionstoreprovider
      • ssxresolveens
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserverconfig
        • providers
        • signingkey
        • usesecurecookies
      • ssxserverhost
      • ssxserverproviders
        • metrics
        • rpc
        • sessionconfig
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsessionstoreconfig
        • sessionoptions
        • store
    • SSX Server API Reference
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxauthenticated
      • ssxcloudflareprovider
      • ssxcookieoptions
        • httponly
        • samesite
        • secure
        • signed
      • ssxcustomprovider
      • ssxensdata
        • avatarurl
        • domain
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxeventlogtypes
      • ssxexpressmiddleware
      • ssxexpresssessionstoreprovider
      • ssxgenericprovider
      • ssxhttpmiddleware
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxlogfields
        • content
        • timestamp
        • type
        • userid
      • ssxmetricsprovider
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxredissessionstoreprovider
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserver
        • constructor
        • generatenonce
        • getexpresssessionconfig
        • log
        • login
        • logout
        • provider
        • resolveens
        • session
      • ssxserverconfig
        • providers
        • signingkey
        • usesecurecookies
      • ssxserverproviders
        • metrics
        • rpc
        • sessionconfig
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsessionstoreconfig
        • sessionoptions
        • store
    • SSX Serverless API Reference
      • isssxalchemyprovider
      • isssxankrprovider
      • isssxcloudflareprovider
      • isssxcustomprovider
      • isssxetherscanprovider
      • isssxinfuraprovider
      • isssxpocketprovider
      • ssxalchemyprovider
      • ssxalchemyprovidernetworks
      • ssxankrprovider
      • ssxankrprovidernetworks
      • ssxcloudflareprovider
      • ssxcustomprovider
      • ssxensdata
        • ensavatarurl
        • ensname
      • ssxensresolveoptions
        • avatar
        • domain
      • ssxetherscanprovider
      • ssxetherscanprovidernetworks
      • ssxeventlogtypes
      • ssxgenericprovider
      • ssxinfuraprovider
      • ssxinfuraprovidernetworks
      • ssxinfuraproviderprojectsettings
      • ssxlogfields
        • content
        • timestamp
        • type
        • userid
      • ssxpocketprovider
      • ssxpocketprovidernetworks
      • ssxrpcprovider
      • ssxrpcproviders
      • ssxserver
        • constructor
        • generatenonce
        • getnonce
        • log
        • me
        • provider
        • resolveens
        • session
        • signin
        • signout
      • ssxserverconfig
        • daologin
        • providers
      • ssxserverproviders
        • metrics
        • rpc
      • ssxserverroutes
        • login
        • logout
        • nonce
      • ssxsessioncrudconfig
        • create
        • delete
        • retrieve
        • update
      • ssxsessiondata
        • daologin
        • ens
        • signature
        • siwemessage
Powered by GitBook
On this page
  • Express
  • Node HTTP Server Middleware

Was this helpful?

Edit on GitHub
  1. Configuring SSX

Configuring SSX Server

PreviousConfiguring SSXNextConfiguring SSX with React

Last updated 2 years ago

Was this helpful?

SSX aims to work with as many different servers and backend configurations as possible. Please if you find your server configuration currently unsupported.

Express

SSX has support for Express, and it is the default we assume for users of the library. Check out our guides on and to see examples of how to use SSX with Express.

Node HTTP Server Middleware

On your server, you'll need to create an instance of ssx-server and pass it to an HTTP middleware layer, as seen below. ssx-server doesn't require configuration parameters to use, however, it's recommended to have the following variables set:

import http, { IncomingMessage, ServerResponse } from "http";
import { SSXServer, SSXHttpMiddleware } from "@spruceid/ssx-server";

const ssx = new SSXServer({
  providers: {
    metrics: { service: "ssx", apiKey: process.env.SSX_API_TOKEN },
  },
});

const ssxMiddleware = SSXHttpMiddleware(ssx);
/* It's possible to override the routes by passing a second parameter:
const ssxMiddleware = SSXHttpMiddleware(ssx, {
  nonce: '/ssx-custom-nonce',
  login: {
    path: '/ssx-custom-login',
    callback: async (req: IncomingMessage, body?: Record<string, any>) => {
      console.log(`User ${body.address} successfully signed in`);
    }
  },
  logout: '/ssx-custom-logout',
}); */

const processRequest = async (req: IncomingMessage, res: ServerResponse) => { ... };

const requestListener = async (req: IncomingMessage, res: ServerResponse) => {
  await ssxMiddleware()(req, res);
  await processRequest(req, res);
};

const server = http.createServer(requestListener);
server.listen(3001);
🛠️
reach out
SSX Server Quickstart
Scaling SSX Server