1
0
Fork 0
arangodb/Documentation/Books/Manual/Foxx/Sessions/Transports
Alan Plum 8877db1239
Finalize Sessions/Transports/README.md
2016-06-19 19:26:25 +02:00
..
Cookie.mdpp Consistent docs links 2016-06-14 17:23:30 +02:00
Header.mdpp Consistent docs links 2016-06-14 17:23:30 +02:00
README.mdpp Finalize Sessions/Transports/README.md 2016-06-19 19:26:25 +02:00

README.mdpp

!CHAPTER Session Transports

Session transports are used by the sessions middleware to store and retrieve session identifiers in requests and responses. Session transports must implement the `get` and/or `set` methods and can optionally implement the `clear` method.

!SECTION get

`transport.get(request): string | null`

Retrieves a session identifier from a request object.

If present this method will automatically be invoked for each transport until a transport returns a session identifier.

**Arguments**

* **request**: `Request`

  [Request object](../../Router/Request.md) to extract a session identifier from.

Returns the session identifier or `null` if the transport can not find a session identifier in the request.

**Examples**

```js
get(req) {
  return req.get('x-session-id') || null;
}
```

!SECTION set

`transport.set(response, sid): void`

Attaches a session identifier to a response object.

If present this method will automatically be invoked at the end of a request regardless of whether the session was modified or not.

**Arguments**

* **response**: `Response`

  [Response object](../../Router/Response.md) to attach a session identifier to.

* **sid**: `string`

  Session identifier to attach to the response.

Returns nothing.

**Examples**

```js
set(res) {
  res.set('x-session-id', value);
}
```

!SECTION clear

`transport.clear(response): void`

Attaches a payload indicating that the session has been cleared to the response object.
This can be used to clear a session cookie when the session has been destroyed (e.g. during logout).

If present this method will automatically be invoked instead of `set` when the `req.session` attribute was removed by the route handler.

**Arguments**

* **response**: `Response`

  Response object to remove the session identifier from.

Returns nothing.