# new CookieStore()
Session store that persists data in a cookie.
By default the cookie session store uses a session cookie that expires and is deleted when the browser is closed. The cookie expiration period can be configured by setting the CookieStore.cookieExpirationTime property. This can be used to implement "remember me" functionality that will either store the session persistently or in a session cookie depending on whether the user opted in or not:
// app/controllers/login.js
import Controller from '@ember/controller';
import { inject as service } from '@ember/service';
export default class LoginController extends Controller {
@service session;
_rememberMe = false;
get rememberMe() {
return this._rememberMe;
}
set rememberMe(value) {
let expirationTime = value ? (14 * 24 * 60 * 60) : null;
this.set('session.store.cookieExpirationTime', expirationTime);
this._rememberMe = value;
}
}
Applications that use FastBoot must use this session store by defining the application session store like this:
// app/session-stores/application.js
import CookieStore from 'ember-simple-auth/session-stores/cookie';
export default class ApplicationSessionStore extends CookieStore {}
Extends
Members
String
# static _cookieDomain
The domain to use for the cookie, e.g., "example.com", ".example.com" (which includes all subdomains) or "subdomain.example.com". If not explicitly set, the cookie domain defaults to the domain the session was authenticated on.
Properties:
Name | Type | Description |
---|---|---|
cookieDomain |
- Default Value:
- null
Integer
# static _cookieExpirationTime
The expiration time for the cookie in seconds. A value of null
will make
the cookie a session cookie that expires and gets deleted when the browser
is closed.
The recommended minimum value is 90 seconds. If your value is less than
that, the cookie may expire before its expiration time is extended
(expiration time is extended every 60 seconds).
Properties:
Name | Type | Description |
---|---|---|
cookieExpirationTime |
- Default Value:
- null
String
# static _cookieName
The name of the cookie.
Properties:
Name | Type | Description |
---|---|---|
cookieName |
- Default Value:
- ember_simple_auth-session
String
# static _cookiePath
The path to use for the cookie, e.g., "/", "/something".
Properties:
Name | Type | Description |
---|---|---|
cookiePath |
- Default Value:
- '/'
String
# static _sameSite
Allows servers to assert that a cookie ought not to be sent along with cross-site requests, which provides some protection against cross-site request forgery attacks (CSRF). Available options: - "Strict" - "Lax"
Properties:
Name | Type | Description |
---|---|---|
sameSite |
- Default Value:
- null
Methods
# static clear() → {RSVP.Promise}
Clears the store by deleting the cookie.
A promise that resolves when the store has been cleared successfully and rejects otherwise.
RSVP.Promise
# static persist(data) → {RSVP.Promise}
Persists the data
in the cookie.
Parameters:
Name | Type | Description |
---|---|---|
data |
Object
|
The data to persist |
A promise that resolves when the data has successfully been persisted and rejects otherwise.
RSVP.Promise
# static restore() → {RSVP.Promise}
Returns all data currently stored in the cookie as a plain object.
A promise that resolves with the data currently persisted in the store when the data has been restored successfully and rejects otherwise.
RSVP.Promise