Skip to content

Commit 9ad4491

Browse files
committed
add oauthStorageService
1 parent 6b92676 commit 9ad4491

File tree

9 files changed

+238
-136
lines changed

9 files changed

+238
-136
lines changed

bower.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@
2424
],
2525
"dependencies": {
2626
"angular": "^1.3.9",
27-
"angular-cookie": "^4.0.6",
27+
"angular-cookies": "~1.4.6",
28+
"ngstorage": "~0.3.9",
2829
"query-string": "^1.0.0"
2930
}
3031
}

dist/angular-oauth2.js

Lines changed: 104 additions & 65 deletions
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", [ "ipCookie" ]).config(oauthConfig).factory("oauthInterceptor", oauthInterceptor).provider("OAuth", OAuthProvider).provider("OAuthToken", OAuthTokenProvider);
16+
var ngModule = angular.module("angular-oauth2", [ "ngStorage", "ngCookies" ]).config(oauthConfig).factory("oauthInterceptor", oauthInterceptor).provider("OAuth", OAuthProvider).provider("OAuthToken", OAuthTokenProvider).service("OAuthStorage", OAuthStorageProvider);
1717
function oauthConfig($httpProvider) {
1818
$httpProvider.interceptors.push("oauthInterceptor");
1919
}
@@ -179,7 +179,6 @@
179179
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
180180
};
181181
function OAuthTokenProvider() {
182-
var storage;
183182
var config = {
184183
name: "token",
185184
storage: "cookies",
@@ -194,16 +193,18 @@
194193
angular.extend(config, params);
195194
return config;
196195
};
197-
this.$get = function(ipCookie, $window) {
196+
this.$get = function(OAuthStorage) {
198197
var OAuthToken = function() {
199-
function OAuthToken() {}
198+
function OAuthToken() {
199+
console.log(OAuthStorage);
200+
}
200201
_prototypeProperties(OAuthToken, null, {
201202
token: {
202203
set: function(data) {
203-
return setToken(data);
204+
return OAuthStorage.setToken(data);
204205
},
205206
get: function() {
206-
return getToken();
207+
return OAuthStorage.getToken();
207208
},
208209
enumerable: true,
209210
configurable: true
@@ -244,75 +245,113 @@
244245
configurable: true
245246
},
246247
removeToken: {
247-
value: function(_removeToken) {
248-
var _removeTokenWrapper = function removeToken() {
249-
return _removeToken.apply(this, arguments);
250-
};
251-
_removeTokenWrapper.toString = function() {
252-
return _removeToken.toString();
253-
};
254-
return _removeTokenWrapper;
255-
}(function() {
256-
return removeToken();
257-
}),
248+
value: function removeToken() {
249+
return OAuthStorage.removeToken();
250+
},
258251
writable: true,
259252
enumerable: true,
260253
configurable: true
261254
}
262255
});
263256
return OAuthToken;
264257
}();
265-
var setToken = function(data) {
266-
storage = config.storage.toLowerCase();
267-
switch (storage) {
268-
case "cookies":
269-
return ipCookie(config.name, data, config.options);
270-
271-
case "localstorage":
272-
return $window.localStorage.setItem(config.name, angular.toJson(data));
273-
274-
case "sessionstorage":
275-
return $window.sessionStorage.setItem(config.name, angular.toJson(data));
276-
277-
default:
278-
return ipCookie(config.name, data, config.options);
258+
return new OAuthToken();
259+
};
260+
this.$get.$inject = [ "OAuthStorage" ];
261+
}
262+
var _prototypeProperties = function(child, staticProps, instanceProps) {
263+
if (staticProps) Object.defineProperties(child, staticProps);
264+
if (instanceProps) Object.defineProperties(child.prototype, instanceProps);
265+
};
266+
function OAuthStorageProvider() {
267+
var config = {};
268+
this.$get = [ "$localStorage", "$sessionStorage", "$cookies", "$log", function($localStorage, $sessionStorage, $cookies, $log) {
269+
var storage;
270+
var ngStorage = (config.storage || "cookies").toLowerCase();
271+
var BrowserStorage = function() {
272+
function BrowserStorage(storage, name) {
273+
this.storage = storage;
274+
this.name = name;
279275
}
280-
};
281-
var getToken = function() {
282-
storage = config.storage.toLowerCase();
283-
switch (storage) {
284-
case "cookies":
285-
return ipCookie(config.name);
286-
287-
case "localstorage":
288-
return angular.fromJson($window.localStorage.getItem(config.name));
289-
290-
case "sessionstorage":
291-
return angular.fromJson($window.sessionStorage.getItem(config.name));
292-
293-
default:
294-
return ipCookie(config.name);
276+
_prototypeProperties(BrowserStorage, null, {
277+
token: {
278+
set: function(data) {
279+
return this.storage.setItem(this.name, angular.toJson(data));
280+
},
281+
get: function() {
282+
return angular.fromJson(this.storage.getItem(this.name));
283+
},
284+
enumerable: true,
285+
configurable: true
286+
},
287+
deleteToken: {
288+
value: function deleteToken() {
289+
this.storage.removeItem(this.name);
290+
},
291+
writable: true,
292+
enumerable: true,
293+
configurable: true
294+
}
295+
});
296+
return BrowserStorage;
297+
}();
298+
var CookieStorage = function() {
299+
function CookieStorage($cookies, name, options) {
300+
this.$cookies = storage;
301+
this.name = name;
302+
this.options = options;
295303
}
296-
};
297-
var removeToken = function() {
298-
storage = config.storage.toLowerCase();
299-
switch (storage) {
300-
case "cookies":
301-
return ipCookie.remove(config.name, config.options);
302-
303-
case "localstorage":
304-
return $window.localStorage.removeItem(config.name);
305-
306-
case "sessionstorage":
307-
return $window.sessionStorage.removeItem(config.name);
308-
309-
default:
310-
return ipCookie.remove(config.name, config.options);
304+
_prototypeProperties(CookieStorage, null, {
305+
token: {
306+
set: function(value) {
307+
return this.$cookies.putObject(this.name, value, this.options);
308+
},
309+
get: function() {
310+
return this.$cookies.getObject(this.name);
311+
},
312+
enumerable: true,
313+
configurable: true
314+
},
315+
deleteToken: {
316+
value: function deleteToken() {
317+
return this.$cookies.remove(this.name, this.options);
318+
},
319+
writable: true,
320+
enumerable: true,
321+
configurable: true
322+
}
323+
});
324+
return CookieStorage;
325+
}();
326+
var OAuthStorage = function() {
327+
function OAuthStorage() {
328+
this.storage = ngStorage === "cookies" ? new CookieStorage(storage, config.name, config.options) : new BrowserStorage(storage, config.name);
329+
$log.info("Storage Started");
311330
}
312-
};
313-
return new OAuthToken();
314-
};
315-
this.$get.$inject = [ "ipCookie", "$window" ];
331+
_prototypeProperties(OAuthStorage, null, {
332+
token: {
333+
set: function(value) {
334+
return this.storage.setToken(value);
335+
},
336+
get: function() {
337+
return this.storage.getToken();
338+
},
339+
enumerable: true,
340+
configurable: true
341+
},
342+
deleteToken: {
343+
value: function deleteToken() {
344+
return this.storage.deleteToken();
345+
},
346+
writable: true,
347+
enumerable: true,
348+
configurable: true
349+
}
350+
});
351+
return OAuthStorage;
352+
}();
353+
return new OAuthStorage();
354+
} ];
316355
}
317356
return ngModule;
318357
});

0 commit comments

Comments
 (0)