Matter
What are the minimal tools I need to make an app matter?
Matter is a Javascript library that provides common web application functionality such as user authentication and local/session/token storage. This library is built to communicate with a Tessellate Server such as Tessellate for application data, but custom server setups are on the roadmap.
Matter is Isomorphic, which means it will work well in both Browser and NodeJS environments. ES6 functionality is also available through importing and/or extending Matter (more details below).
Quick Start
Using Matter requires having created an application on devshare, Tessellate or on your own Tessellate server.
ES6
- Run
npm install --save kyper-matter
- Import Matter library
import Matter from 'kyper-matter';
- Create a new matter application object:
//New matter object with the application name 'exampleApp'
let matter = new Matter('exampleApp');
//Login to account with username "test" and password "test"
matter.login({username:"test", password:"test"}).then((user) => {
console.log('User logged into exampleApp:', user);
}, (err) => {
console.error('Error logging in:', err);
});
- Use Matter methods
NodeJS
- Run
npm install --save kyper-matter
- Import Matter library
var Matter = require('kyper-matter');
- Create a new matter application object:
//New matter object with the application name 'exampleApp'
var matter = new Matter('exampleApp');
//Login to account with username "test" and password "test"
matter.login({username:"test", password:"test"}).then(function(user) {
console.log('User logged into exampleApp:', user);
}, function(err) {
console.error('Error logging in:', err);
});
Browser
- Include the Matter library using one of the following:
#### CDN
To use the CDN, add the following script tag to your `index.html`:
```html
<!-- Matter Library Bundle -->
<script src="http://cdn.kyper.io/js/matter/latest/matter.js"></script>
```
#### Bower
Run `bower install --save kyper-matter`
- Start using Matter by providing the name of the app you created on Build or Tessellate:
javascript //New Matter object with the application name 'exampleApp' var matter = new Matter('exampleApp');
- Start using Matter:
//Login to account with username "test" and password "test"
matter.login({username:"test", password:"test"}).then(function(user){
console.log('User logged into exampleApp:', user);
});
Options
When creating a new matter object, you can provide an options object as the second argument:
//New matter object with the application name 'exampleApp'
var optionsObj = {
localServer: false,
logLevel: 'trace'
}
var matter = new Matter('exampleApp', optionsObj);
Availble options:
logLevel
- Level of logging (error, warn, info, debug, or trace)localServer
- Boolean of whether or not to use local tessellate server
Docs
API Documentation
More Information
Matter is a javascript library that provides common web application functionality such as user authentication and local/session/token storage. In order to build applications quickly, Matter uses Tessellate to store and manage application data.
Application Data
Matter communicates with Tessellate for users, auth groups, and other application data. This means that you must have an application on Tessellate or on your own Tessellate server in order for you to be able to control the groups.
Features
- Login/Logout/Signup
- Authentication Groups
- Secure Auth State Persistence (jwt token + cookies)
- Session Management/Storage
- Authenticated request utility
- Logger utility
Diagram Coming Soon
Examples
Browser/Javascript
React
Angular
Test
Tests are located in test folder and can be run via gulp test
or gulp coverage
commands.
index.html
has been added as a bare bones test page similar to browser example (`/examples/browser/index.html).