87 lines
1.9 KiB
JavaScript
87 lines
1.9 KiB
JavaScript
app.auth = (function(app) {
|
|
var user = {}
|
|
function setToken(token){
|
|
localStorage.setItem('APIToken', token);
|
|
}
|
|
|
|
function getToken(){
|
|
return localStorage.getItem('APIToken');
|
|
}
|
|
|
|
function isLoggedIn(callback){
|
|
if(getToken()){
|
|
return app.api.get('user/me', function(error, data){
|
|
if(error === 'Unauthorized') logOut();
|
|
if(!error) app.auth.user = data;
|
|
return callback(error, data);
|
|
});
|
|
}else{
|
|
callback(null, false);
|
|
}
|
|
}
|
|
|
|
function logIn(args, callback){
|
|
app.api.post('auth/login', args, function(error, data){
|
|
if(data.login){
|
|
setToken(data.token);
|
|
}
|
|
callback(error, !!data.token);
|
|
});
|
|
}
|
|
|
|
function logOut(callback){
|
|
callback = callback || app.util.emptyFuction;
|
|
localStorage.removeItem('APIToken');
|
|
callback();
|
|
}
|
|
|
|
function makeUserFromInvite(args, callback){
|
|
app.api.post('auth/invite/'+ args.token, args, function(error, data){
|
|
if(data.login){
|
|
callback(null, data);
|
|
setToken(data.token);
|
|
}
|
|
callback(error, !!data.token);
|
|
});
|
|
}
|
|
|
|
function forceLogin(){
|
|
$.holdReady( true );
|
|
app.auth.isLoggedIn(function(error, isLoggedIn){
|
|
if(error || !isLoggedIn){
|
|
app.auth.logOut(function(){})
|
|
location.replace(`/login${location.href.replace(location.origin, '')}`);
|
|
}else{
|
|
$.holdReady( false );
|
|
}
|
|
});
|
|
}
|
|
|
|
function logInRedirect(){
|
|
window.location.href = location.href.replace(location.origin+'/login', '') || '/'
|
|
}
|
|
|
|
|
|
$( document ).ready( function(){
|
|
isLoggedIn(function(error, isLoggedIn){
|
|
if(!error && isLoggedIn){
|
|
$('.tbp_proxy_is_authed').show();
|
|
$('.tbp_proxy_not_authed').hide();
|
|
}else{
|
|
$('.tbp_proxy_is_authed').hide();
|
|
$('.tbp_proxy_not_authed').show();
|
|
}
|
|
});
|
|
});
|
|
|
|
return {
|
|
getToken: getToken,
|
|
setToken: setToken,
|
|
isLoggedIn: isLoggedIn,
|
|
logIn: logIn,
|
|
logOut: logOut,
|
|
makeUserFromInvite: makeUserFromInvite,
|
|
forceLogin,
|
|
logInRedirect,
|
|
}
|
|
})(app); |