https://github.com/poetic/ember-cli-cordova-auth
An simple authentication library for ember-cli-cordova applications
https://github.com/poetic/ember-cli-cordova-auth
Last synced: about 2 months ago
JSON representation
An simple authentication library for ember-cli-cordova applications
- Host: GitHub
- URL: https://github.com/poetic/ember-cli-cordova-auth
- Owner: poetic
- Created: 2014-07-04T17:33:48.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2015-05-13T20:45:00.000Z (about 10 years ago)
- Last Synced: 2025-03-27T20:11:30.991Z (2 months ago)
- Language: JavaScript
- Size: 14.9 MB
- Stars: 20
- Watchers: 6
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# ember-cli-cordova-auth [](https://travis-ci.org/poetic/ember-cli-cordova-auth)
A simple authentication library built for ember-cli-cordova apps. It manages
whether or not the user is signed in by an authentication token.# Installation
```sh
npm install --save-dev ember-cli-cordova-auth
```# Usage
This plugin provides a very simple API and injects a `session` object throughout
your app. Here are some of the methods available:## Third party authentication support
Facebook - [phonegap-facebook-plugin](https://github.com/phonegap/phonegap-facebook-plugin)
Google - [cordova-plugin-googleplus](https://github.com/poetic/cordova-plugin-googleplus)## Session Methods
* `config.` is being used to signify options in the config/environment.js file
* There is an implied this.session for accessing the methods
* All methods return promises### signIn / signUp - params: object
Sends a POST request to config.signInUrl/signUpUrl respectively with object
passed in. The returned data get's set as properties on the session itself. It must
have a user root key in the responseExample response:
```js
{
"user": {
"id": 1,
"authToken": "abc1234"
}
}// Then this would be what the session has on it
session.get('id') // 1
session.get('authToken') // "abc1234"
```The returned data is persisted in localStorage using the
config.sessionLocalStorageKey key. On app initialization this is loaded back
into the session object automatically.### resetPassword - params: object
Sends a POST request to config.resetPasswordUrl with object passed in. That's
it.### signInWithFacebook - params: array of fb permissions
*Requires the
[phonegap-facebook-connect](https://github.com/Wizcorp/phonegap-facebook-plugin)
plugin to be installed. You must also be running the app within the simulator or
on a device*Prompts the user with the Native Facebook dialog. When accepted it sends a
POST request to config.facebookSignInUrl with facebook's returned data.
Returned data from there get's set as properties on the session itself as it
does when calling signIn directly.### signInWithGoogle - params: Object with at least the iOSApiKey and value
*Requires the
[cordova-plugin-googleplus](https://github.com/EddyVerbruggen/cordova-plugin-googleplus)
plugin to be installed. You must also be running the app within the simulator or
on a device*It takes the user to the device browser so you can authenticate with google.
When it returns to the app after a successful response, it makes a POST request
to config.googleSignInUrl with the returned data. The response of this POST
should be the same as when calling signIn directly, thus getting stored on the
session (user data).### signOut
It clears the in memory session and the localStorage cached copy.
## Config
The config is set in config/environment.js
```
// These URL's are used when sending external requestsENV.signInUrl = 'http://localhost:3000/api/v1/sessions';
ENV.signUpUrl = 'http://localhost:3000/api/v1/sign_up';
ENV.facebookSignInUrl = 'http://localhost:3000/api/v1/sessions/facebook';
ENV.resetPasswordUrl = 'http://localhost:3000/api/v1/users/password';// A computed property is set on an 'authToken' value being present in the signIn/signUp response. This determines
// if a user is signed in or not. Use this setting to override it if neededENV.authTokenKey = 'access_token';
// The session is persisted to localstorage under an 'ember-cli-cordova-auth' key by default. You can override it
// with this optionENV.sessionLocalStorageKey = 'test-localstorage';
```## Properties
The session contains some default properties to validate session state as well
as the ones applied after signing up or in### isSignedIn
At any point you can call `isSignedIn` to check whether or not a user is logged
in to the app. This is persisted across app restarts via localStorage.example:
```js
import Ember from 'ember';
export default Ember.Route.extend({
redirect: function() {
if(!this.session.get('isSignedIn')) {
this.transitionTo('sign-in');
}
}
});
```### Others
The properties returned from calling signIn / signUp will also be store. See the section on those methods for details.
### Example App with FB sign in
See [example-fb-login](https://github.com/poetic/ember-cli-cordova-auth/tree/example-fb-login) branch.### Developing this addon
Tests are done within the tests-app folder. If you add something new please add
tests that cover it.```
git clone https://github.com/poetic/ember-cli-cordova-auth.git
cd ember-cli-cordova-auth
npm install && bower install
ember test
```