Skip to content

Commit

Permalink
Version v0.2.0
Browse files Browse the repository at this point in the history
* Google provider signup/login working
* Error response handling improved
* Object responses handling improved
  • Loading branch information
Scott Prue committed Jan 16, 2016
1 parent e472b5a commit e4b0638
Show file tree
Hide file tree
Showing 5 changed files with 106 additions and 36 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Using Matter requires having created an application on [Build](http://build.kype

```html
<!-- Matter Library Bundle -->
<script src="http://cdn.kyper.io/js/matter/0.1.9/matter.js"></script>
<script src="http://cdn.kyper.io/js/matter/0.2.0/matter.js"></script>
```
#### Bower
Run `bower install --save kyper-matter`
Expand Down
65 changes: 50 additions & 15 deletions dist/matter.js
Original file line number Diff line number Diff line change
Expand Up @@ -1813,19 +1813,54 @@ return /******/ (function(modules) { // webpackBootstrap
_createClass(ProviderAuth, [{
key: 'login',
value: function login() {
return this.getAuthUrl().then(function (url) {
_logger2.default.info({
description: 'Login response.', url: url,
func: 'login', obj: 'providerAuth'
var _this = this;

if (this.provider === 'google') {
return this.googleAuth().then(function (googleAccount) {
if (!googleAccount) {
return Promise.reject('Error loading Google account.');
}
var image = googleAccount.image;
var emails = googleAccount.emails;

var email = emails && emails[0] && emails[0].value ? emails[0].value : '';
var account = {
image: image, email: email,
username: email.split('@')[0],
provider: _this.provider,
providerAccount: googleAccount
};
_logger2.default.info({
description: 'Google account loaded, signing up.', account: account,
googleAccount: googleAccount, func: 'signup', obj: 'providerAuth'
});
return new _request2.default.post(_this.app.endpoint + '/signup', account).then(function (newAccount) {
_logger2.default.info({
description: 'Signup with external account successful.',
newAccount: newAccount, func: 'signup', obj: 'providerAuth'
});
return newAccount;
}, function (error) {
_logger2.default.error({
description: 'Error loading google account.', account: account,
googleAccount: googleAccount, error: error, func: 'signup', obj: 'providerAuth'
});
return Promise.reject(error);
});
}, function (error) {
_logger2.default.error({
description: 'Error authenticating with Google.', error: error,
func: 'signup', obj: 'providerAuth'
});
return Promise.reject('Error getting external account.');
});
return url;
}, function (error) {
} else {
_logger2.default.error({
description: 'Error initalizing hellojs.', error: error,
func: 'login', obj: 'providerAuth'
description: 'Invalid provider.',
func: 'signup', obj: 'providerAuth'
});
return Promise.reject('Error with third party login.');
});
return Promise.reject('Invalid provider');
}
}
/** Signup using external provider account (Google, Facebook, Github)
* @example
Expand All @@ -1840,7 +1875,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: 'signup',
value: function signup() {
var _this = this;
var _this2 = this;

if (this.provider === 'google') {
return this.googleAuth().then(function (googleAccount) {
Expand All @@ -1854,14 +1889,14 @@ return /******/ (function(modules) { // webpackBootstrap
var account = {
image: image, email: email,
username: email.split('@')[0],
provider: _this.provider,
provider: _this2.provider,
providerAccount: googleAccount
};
_logger2.default.info({
description: 'Google account loaded, signing up.', account: account,
googleAccount: googleAccount, func: 'signup', obj: 'providerAuth'
});
return new _request2.default.post(_this.app.endpoint + '/signup', account).then(function (newAccount) {
return new _request2.default.post(_this2.app.endpoint + '/signup', account).then(function (newAccount) {
_logger2.default.info({
description: 'Signup with external account successful.',
newAccount: newAccount, func: 'signup', obj: 'providerAuth'
Expand Down Expand Up @@ -1892,7 +1927,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, {
key: 'googleAuth',
value: function googleAuth() {
var _this2 = this;
var _this3 = this;

var clientId = this.app && this.app.name && _config2.default.externalAuth[this.app.name] ? _config2.default.externalAuth[this.app.name].google : null;
if (!clientId) {
Expand All @@ -1904,7 +1939,7 @@ return /******/ (function(modules) { // webpackBootstrap
}
if (typeof window !== 'undefined' && typeof window.gapi === 'undefined') {
return this.addGoogleLib().then(function () {
return _this2.googleAuth();
return _this3.googleAuth();
});
}
return new Promise(function (resolve, reject) {
Expand Down
8 changes: 4 additions & 4 deletions dist/matter.min.js

Large diffs are not rendered by default.

65 changes: 50 additions & 15 deletions lib/utils/providerAuth.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,19 +61,54 @@ var ProviderAuth = function () {
_createClass(ProviderAuth, [{
key: 'login',
value: function login() {
return this.getAuthUrl().then(function (url) {
_logger2.default.info({
description: 'Login response.', url: url,
func: 'login', obj: 'providerAuth'
var _this = this;

if (this.provider === 'google') {
return this.googleAuth().then(function (googleAccount) {
if (!googleAccount) {
return Promise.reject('Error loading Google account.');
}
var image = googleAccount.image;
var emails = googleAccount.emails;

var email = emails && emails[0] && emails[0].value ? emails[0].value : '';
var account = {
image: image, email: email,
username: email.split('@')[0],
provider: _this.provider,
providerAccount: googleAccount
};
_logger2.default.info({
description: 'Google account loaded, signing up.', account: account,
googleAccount: googleAccount, func: 'signup', obj: 'providerAuth'
});
return new _request2.default.post(_this.app.endpoint + '/signup', account).then(function (newAccount) {
_logger2.default.info({
description: 'Signup with external account successful.',
newAccount: newAccount, func: 'signup', obj: 'providerAuth'
});
return newAccount;
}, function (error) {
_logger2.default.error({
description: 'Error loading google account.', account: account,
googleAccount: googleAccount, error: error, func: 'signup', obj: 'providerAuth'
});
return Promise.reject(error);
});
}, function (error) {
_logger2.default.error({
description: 'Error authenticating with Google.', error: error,
func: 'signup', obj: 'providerAuth'
});
return Promise.reject('Error getting external account.');
});
return url;
}, function (error) {
} else {
_logger2.default.error({
description: 'Error initalizing hellojs.', error: error,
func: 'login', obj: 'providerAuth'
description: 'Invalid provider.',
func: 'signup', obj: 'providerAuth'
});
return Promise.reject('Error with third party login.');
});
return Promise.reject('Invalid provider');
}
}
/** Signup using external provider account (Google, Facebook, Github)
* @example
Expand All @@ -88,7 +123,7 @@ var ProviderAuth = function () {
}, {
key: 'signup',
value: function signup() {
var _this = this;
var _this2 = this;

if (this.provider === 'google') {
return this.googleAuth().then(function (googleAccount) {
Expand All @@ -102,14 +137,14 @@ var ProviderAuth = function () {
var account = {
image: image, email: email,
username: email.split('@')[0],
provider: _this.provider,
provider: _this2.provider,
providerAccount: googleAccount
};
_logger2.default.info({
description: 'Google account loaded, signing up.', account: account,
googleAccount: googleAccount, func: 'signup', obj: 'providerAuth'
});
return new _request2.default.post(_this.app.endpoint + '/signup', account).then(function (newAccount) {
return new _request2.default.post(_this2.app.endpoint + '/signup', account).then(function (newAccount) {
_logger2.default.info({
description: 'Signup with external account successful.',
newAccount: newAccount, func: 'signup', obj: 'providerAuth'
Expand Down Expand Up @@ -140,7 +175,7 @@ var ProviderAuth = function () {
}, {
key: 'googleAuth',
value: function googleAuth() {
var _this2 = this;
var _this3 = this;

var clientId = this.app && this.app.name && _config2.default.externalAuth[this.app.name] ? _config2.default.externalAuth[this.app.name].google : null;
if (!clientId) {
Expand All @@ -152,7 +187,7 @@ var ProviderAuth = function () {
}
if (typeof window !== 'undefined' && typeof window.gapi === 'undefined') {
return this.addGoogleLib().then(function () {
return _this2.googleAuth();
return _this3.googleAuth();
});
}
return new Promise(function (resolve, reject) {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "kyper-matter",
"version": "0.1.9",
"version": "0.2.0",
"description": "Library to provide simple application functionality like authentication and local/session/token storage for Tesselate applications.",
"main": "./lib/index.js",
"scripts": {
Expand Down

0 comments on commit e4b0638

Please sign in to comment.