Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pouchdb/pouchbase
Server that lets PouchDB applications sync with passwordless logins
https://github.com/pouchdb/pouchbase
Last synced: 5 days ago
JSON representation
Server that lets PouchDB applications sync with passwordless logins
- Host: GitHub
- URL: https://github.com/pouchdb/pouchbase
- Owner: pouchdb
- Created: 2013-07-25T01:10:47.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2017-03-07T07:21:27.000Z (over 7 years ago)
- Last Synced: 2024-10-05T03:44:29.575Z (about 1 month ago)
- Language: JavaScript
- Homepage:
- Size: 102 KB
- Stars: 97
- Watchers: 11
- Forks: 36
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-starred - pouchdb/pouchbase - Server that lets PouchDB applications sync with passwordless logins (others)
README
DEPRECATED
=========This repository will likely be deleted shortly, keeping it up temporarily in case
anyone wants to fork it etc before hand.PouchBase
---------PouchBase is a service that lets your PouchDB applications easily provide login
and online sync functionality.When users of your application want to login, they provide an email address and
your app notifies the pouch.host service of that email. pouch.host will generate
a token for that user and send it to their email address.When the user clicks the token, they will be authenticated with pouch.host and sent
back to your application, pouch.host will create a database that that user alone
can access, your PouchDB application can then sync with that database so
whenever the user logs in to your application, their data is automatically
kept in sync.PouchBase Getting Started
-------------------------The first step is to have a PouchDB application, you can visit
http://pouchdb.com/getting-started.html for help getting started with PouchDBDownload https://pouchbase.com/pouchbase.js and
add it to your web application```html
```
When the user wants to login, call PouchBase.login
```javascript
loginButton.addEventListener('click', function() {
PouchBase.login({
email: emailField.value
});
});
```The user will then be sent an email, when they click on the url they will be
authenticated and sent back to your application with a valid session, so check
for a valid session when your web application loads```javascript
var db = .... // Instiated elsewhere
var sync;PouchBase.session().then(function (result) {
if (result.ok) {
// We have a valid session, sync!
sync = db.sync(result.db, {live: true});
}
});
```And your application should now keep your users data in sync wherever they
login.PouchBase API
-------------The PouchBase API is a simple JSON api served from https://pouchbase.com/, if
you dont want to use the provided JS client, then you can call it directly.# POST /login/
##### Example Body:
```json
{
"email": "[email protected]"
}
```Send a login request, the body of the request is JSON document, the `email` property
is required, you can provide any extra fields you desire and they will be accessible
via the session API# GET /session/
This will return JSON that indicates if the current user has a valid session, if
they do any extra data provided to the `POST /login/` or `POST /session/` API will
be included in the response##### Example Response:
```json
{
"ok": true,
"user": "[email protected]",
"db": "https://pouchbase.com/db/"
}
```##### Failed Response:
```json
{
"error": true,
"reason": "unauthorized"
}
```# POST /session/
If a user has a valid session, you can post a JSON object to it and it will be
stored for future access# POST /logout/
Deletes a current users session
# REQUEST /db/
If the user has a current valid session, they will be provided a database in which
to sync data to, requests to /db/* will be forwarded to a PouchDB (CouchDB) instance
that only the current user can access.