Advertisement
Guest User

Untitled

a guest
Mar 9th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict';
  2. app.factory('authService', ['$http', '$q', 'localStorageService', 'ngAuthSettings', function ($http, $q, localStorageService, ngAuthSettings) {
  3.  
  4.     var serviceBase = ngAuthSettings.apiServiceBaseUri;
  5.     var authServiceFactory = {};
  6.  
  7.     var _authentication = {
  8.         isAuth: false,
  9.         userName: "",
  10.         useRefreshTokens: false
  11.     };
  12.  
  13.     var _externalAuthData = {
  14.         provider: "",
  15.         userName: "",
  16.         externalAccessToken: ""
  17.     };
  18.  
  19.     var _saveRegistration = function (registration) {
  20.  
  21.         _logOut();
  22.  
  23.         return $http.post(serviceBase + 'api/account/register', registration).then(function (response) {
  24.             return response;
  25.         });
  26.  
  27.     };
  28.  
  29.     var _login = function (loginData) {
  30.  
  31.         var data = "grant_type=password&username=" + loginData.userName + "&password=" + loginData.password;
  32.  
  33.         if (loginData.useRefreshTokens) {
  34.             data = data + "&client_id=" + ngAuthSettings.clientId;
  35.         }
  36.  
  37.         var deferred = $q.defer();
  38.  
  39.         $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) {
  40.  
  41.             if (loginData.useRefreshTokens) {
  42.                 localStorageService.set('authorizationData', { token: response.access_token, userName: loginData.userName, refreshToken: response.refresh_token, useRefreshTokens: true });
  43.             }
  44.             else {
  45.                 localStorageService.set('authorizationData', { token: response.access_token, userName: loginData.userName, refreshToken: "", useRefreshTokens: false });
  46.             }
  47.             _authentication.isAuth = true;
  48.             _authentication.userName = loginData.userName;
  49.             _authentication.useRefreshTokens = loginData.useRefreshTokens;
  50.  
  51.             deferred.resolve(response);
  52.  
  53.         }).error(function (err, status) {
  54.             _logOut();
  55.             deferred.reject(err);
  56.         });
  57.  
  58.         return deferred.promise;
  59.  
  60.     };
  61.  
  62.     var _logOut = function () {
  63.  
  64.         localStorageService.remove('authorizationData');
  65.  
  66.         _authentication.isAuth = false;
  67.         _authentication.userName = "";
  68.         _authentication.useRefreshTokens = false;
  69.  
  70.     };
  71.  
  72.     var _fillAuthData = function () {
  73.  
  74.         var authData = localStorageService.get('authorizationData');
  75.         if (authData) {
  76.             _authentication.isAuth = true;
  77.             _authentication.userName = authData.userName;
  78.             _authentication.useRefreshTokens = authData.useRefreshTokens;
  79.         }
  80.  
  81.     };
  82.  
  83.     var _refreshToken = function () {
  84.         var deferred = $q.defer();
  85.  
  86.         var authData = localStorageService.get('authorizationData');
  87.  
  88.         if (authData) {
  89.  
  90.             if (authData.useRefreshTokens) {
  91.  
  92.                 var data = "grant_type=refresh_token&refresh_token=" + authData.refreshToken + "&client_id=" + ngAuthSettings.clientId;
  93.  
  94.                 localStorageService.remove('authorizationData');
  95.  
  96.                 $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) {
  97.  
  98.                     localStorageService.set('authorizationData', { token: response.access_token, userName: response.userName, refreshToken: response.refresh_token, useRefreshTokens: true });
  99.  
  100.                     deferred.resolve(response);
  101.  
  102.                 }).error(function (err, status) {
  103.                     _logOut();
  104.                     deferred.reject(err);
  105.                 });
  106.             }
  107.         }
  108.  
  109.         return deferred.promise;
  110.     };
  111.  
  112.     var _obtainAccessToken = function (externalData) {
  113.  
  114.         var deferred = $q.defer();
  115.  
  116.         $http.get(serviceBase + 'api/account/ObtainLocalAccessToken', { params: { provider: externalData.provider, externalAccessToken: externalData.externalAccessToken } }).success(function (response) {
  117.  
  118.             localStorageService.set('authorizationData', { token: response.access_token, userName: response.userName, refreshToken: "", useRefreshTokens: false });
  119.  
  120.             _authentication.isAuth = true;
  121.             _authentication.userName = response.userName;
  122.             _authentication.useRefreshTokens = false;
  123.  
  124.             deferred.resolve(response);
  125.  
  126.         }).error(function (err, status) {
  127.             _logOut();
  128.             deferred.reject(err);
  129.         });
  130.  
  131.         return deferred.promise;
  132.  
  133.     };
  134.  
  135.     var _registerExternal = function (registerExternalData) {
  136.  
  137.         var deferred = $q.defer();
  138.  
  139.         $http.post(serviceBase + 'api/account/registerexternal', registerExternalData).success(function (response) {
  140.  
  141.             localStorageService.set('authorizationData', { token: response.access_token, userName: response.userName, refreshToken: "", useRefreshTokens: false });
  142.  
  143.             _authentication.isAuth = true;
  144.             _authentication.userName = response.userName;
  145.             _authentication.useRefreshTokens = false;
  146.  
  147.             deferred.resolve(response);
  148.  
  149.         }).error(function (err, status) {
  150.             _logOut();
  151.             deferred.reject(err);
  152.         });
  153.  
  154.         return deferred.promise;
  155.  
  156.     };
  157.  
  158.     authServiceFactory.saveRegistration = _saveRegistration;
  159.     authServiceFactory.login = _login;
  160.     authServiceFactory.logOut = _logOut;
  161.     authServiceFactory.fillAuthData = _fillAuthData;
  162.     authServiceFactory.authentication = _authentication;
  163.     authServiceFactory.refreshToken = _refreshToken;
  164.  
  165.     authServiceFactory.obtainAccessToken = _obtainAccessToken;
  166.     authServiceFactory.externalAuthData = _externalAuthData;
  167.     authServiceFactory.registerExternal = _registerExternal;
  168.  
  169.     return authServiceFactory;
  170. }]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement