Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- angular.module('starter')
- .service('AuthService', function($q, $http, USER_ROLES) {
- var LOCAL_TOKEN_KEY = 'siCakep2016';
- var username = '';
- var isAuthenticated = false;
- var role = '';
- var authToken;
- //var API_URL = 'http://sicakep.kemenag.go.id/api/';
- var API_URL = 'http://127.0.0.1/project/sicakep-new/api/';
- function loadUserCredentials() {
- var token = window.localStorage.getItem(LOCAL_TOKEN_KEY);
- if (token) {
- useCredentials(token);
- }
- }
- function storeUserCredentials(token) {
- window.localStorage.setItem(LOCAL_TOKEN_KEY, token);
- useCredentials(token);
- }
- function useCredentials(token) {
- username = token.split('.')[0];
- isAuthenticated = true;
- authToken = token;
- /*if (username == 'admin') {
- role = USER_ROLES.admin
- }
- if (username == 'user') {
- role = USER_ROLES.public
- }*/
- role = USER_ROLES.admin;
- // Set the token as header for your requests!
- $http.defaults.headers.common['X-Auth-Token'] = token;
- }
- function destroyUserCredentials() {
- authToken = undefined;
- username = '';
- isAuthenticated = false;
- $http.defaults.headers.common['X-Auth-Token'] = undefined;
- window.localStorage.removeItem(LOCAL_TOKEN_KEY);
- }
- var login = function(name, pw) {
- return $q(function(resolve, reject) {
- $http.post(API_URL+'auth', { user: name,pass:pw }).then(function (res){
- obj = res.data;
- console.log(obj);
- if( obj.status == 1){
- storeUserCredentials(name + '.' + obj.data.token);
- resolve('Login success.');
- }else{
- reject('Login Failed.');
- }
- });
- });
- };
- var logout = function() {
- destroyUserCredentials();
- };
- var isAuthorized = function(authorizedRoles) {
- if (!angular.isArray(authorizedRoles)) {
- authorizedRoles = [authorizedRoles];
- }
- return (isAuthenticated && authorizedRoles.indexOf(role) !== -1);
- };
- loadUserCredentials();
- return {
- login: login,
- logout: logout,
- isAuthorized: isAuthorized,
- isAuthenticated: function() {return isAuthenticated;},
- username: function() {return username;},
- role: function() {return role;},
- token:authToken,
- api_url:API_URL
- };
- })
- .factory('AuthInterceptor', function($rootScope, $q, AUTH_EVENTS){
- return {
- responseError: function(response){
- $rootScope.$broadcast({
- 401:AUTH_EVENTS.notAuthenticated,
- 403:AUTH_EVENTS.notAuthorized
- }[response.status], response);
- console.log(AUTH_EVENTS);
- return $q.reject(response);
- }
- };
- })
- .config(function($httpProvider){
- $httpProvider.interceptors.push('AuthInterceptor');
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement