Skip to content

Commit 2a9404d

Browse files
committed
fix OAuthStorageProvider implementation
1 parent 1772979 commit 2a9404d

6 files changed

+119
-61
lines changed

bower.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
],
2525
"dependencies": {
2626
"angular": "^1.4.0",
27-
"angular-cookies": "^1.4.6",
27+
"angular-cookies": "~1.4.6",
2828
"ngstorage": "^0.3.9",
2929
"query-string": "^1.0.0"
3030
}

dist/angular-oauth2.js

+60-27
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
root.angularOAuth2 = factory(root.angular, root.queryString);
1414
}
1515
})(this, function(angular, queryString) {
16-
var ngModule = angular.module("angular-oauth2", [ "ngStorage", "ngCookies" ]).config(oauthConfig).factory("oauthInterceptor", oauthInterceptor).provider("OAuth", OAuthProvider).provider("OAuthToken", OAuthTokenProvider).service("OAuthStorage", OAuthStorageProvider);
16+
var ngModule = angular.module("angular-oauth2", [ "ngCookies", "ngStorage" ]).config(oauthConfig).factory("oauthInterceptor", oauthInterceptor).provider("OAuth", OAuthProvider).provider("OAuthToken", OAuthTokenProvider).provider("OAuthStorage", OAuthStorageProvider);
1717
function oauthConfig($httpProvider) {
1818
$httpProvider.interceptors.push("oauthInterceptor");
1919
}
@@ -178,7 +178,7 @@
178178
if (staticProps) Object.defineProperties(child, staticProps);
179179
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
180180
};
181-
function OAuthTokenProvider() {
181+
function OAuthTokenProvider($injector) {
182182
var config = {
183183
name: "token",
184184
storage: "cookies",
@@ -191,21 +191,28 @@
191191
throw new TypeError("Invalid argument: `config` must be an `Object`.");
192192
}
193193
angular.extend(config, params);
194+
$injector.invoke(function(OAuthStorageProvider) {
195+
OAuthStorageProvider.configure(config);
196+
});
194197
return config;
195198
};
196199
this.$get = function(OAuthStorage) {
197200
var OAuthToken = function() {
198-
function OAuthToken() {
199-
console.log(OAuthStorage);
200-
}
201+
function OAuthToken() {}
201202
_prototypeProperties(OAuthToken, null, {
202-
token: {
203-
set: function(data) {
203+
setToken: {
204+
value: function setToken(data) {
204205
return OAuthStorage.setToken(data);
205206
},
206-
get: function() {
207+
writable: true,
208+
enumerable: true,
209+
configurable: true
210+
},
211+
getToken: {
212+
value: function getToken() {
207213
return OAuthStorage.getToken();
208214
},
215+
writable: true,
209216
enumerable: true,
210217
configurable: true
211218
},
@@ -264,21 +271,28 @@
264271
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
265272
};
266273
function OAuthStorageProvider() {
267-
var config = {};
274+
var config = {
275+
name: "token",
276+
storage: "cookies",
277+
options: {
278+
secure: true
279+
}
280+
};
268281
this.configure = function(params) {
269282
angular.extend(config, params);
270283
return config;
271284
};
272-
this.$get = [ "$localStorage", "$sessionStorage", "$cookies", "$log", function($localStorage, $sessionStorage, $cookies, $log) {
285+
this.$get = function($localStorage, $sessionStorage, $cookies, $log) {
273286
var storage;
274-
var ngStorage = (config.storage || "cookies").toLowerCase();
287+
var ngStorage = config.storage.toLowerCase();
275288
if (ngStorage === "localstorage") {
276289
storage = $localStorage;
277290
} else if (ngStorage === "sessionstorage") {
278291
storage = $sessionStorage;
279292
} else if (ngStorage === "cookies") {
280293
storage = $cookies;
281294
} else {
295+
storage = $cookies;
282296
$log.warn("Set storage to cookies, because storage type is unknown");
283297
}
284298
var BrowserStorage = function() {
@@ -287,13 +301,19 @@
287301
this.name = name;
288302
}
289303
_prototypeProperties(BrowserStorage, null, {
290-
token: {
291-
set: function(data) {
292-
return this.storage.setItem(this.name, angular.toJson(data));
304+
setToken: {
305+
value: function setToken(data) {
306+
return this.storage[this.name] = angular.toJson(data);
293307
},
294-
get: function() {
295-
return angular.fromJson(this.storage.getItem(this.name));
308+
writable: true,
309+
enumerable: true,
310+
configurable: true
311+
},
312+
getToken: {
313+
value: function getToken() {
314+
return angular.fromJson(this.storage[this.name]);
296315
},
316+
writable: true,
297317
enumerable: true,
298318
configurable: true
299319
},
@@ -315,13 +335,19 @@
315335
this.options = options;
316336
}
317337
_prototypeProperties(CookieStorage, null, {
318-
token: {
319-
set: function(value) {
338+
setToken: {
339+
value: function setToken(value) {
320340
return this.$cookies.putObject(this.name, value, this.options);
321341
},
322-
get: function() {
342+
writable: true,
343+
enumerable: true,
344+
configurable: true
345+
},
346+
getToken: {
347+
value: function getToken() {
323348
return this.$cookies.getObject(this.name);
324349
},
350+
writable: true,
325351
enumerable: true,
326352
configurable: true
327353
},
@@ -337,18 +363,23 @@
337363
return CookieStorage;
338364
}();
339365
var OAuthStorage = function() {
340-
function OAuthStorage() {
341-
this.storage = ngStorage === "cookies" ? new CookieStorage(storage, config.name, config.options) : new BrowserStorage(storage, config.name);
342-
$log.info("Storage Started");
366+
function OAuthStorage(storage) {
367+
this.storage = storage;
343368
}
344369
_prototypeProperties(OAuthStorage, null, {
345-
token: {
346-
set: function(value) {
370+
setToken: {
371+
value: function setToken(value) {
347372
return this.storage.setToken(value);
348373
},
349-
get: function() {
374+
writable: true,
375+
enumerable: true,
376+
configurable: true
377+
},
378+
getToken: {
379+
value: function getToken() {
350380
return this.storage.getToken();
351381
},
382+
writable: true,
352383
enumerable: true,
353384
configurable: true
354385
},
@@ -363,8 +394,10 @@
363394
});
364395
return OAuthStorage;
365396
}();
366-
return new OAuthStorage();
367-
} ];
397+
storage = ngStorage === "cookies" ? new CookieStorage(storage, config.name, config.options) : new BrowserStorage(storage, config.name);
398+
return new OAuthStorage(storage);
399+
};
400+
this.$get.$inject = [ "$localStorage", "$sessionStorage", "$cookies", "$log" ];
368401
}
369402
return ngModule;
370403
});

0 commit comments

Comments
 (0)