mirror of
https://github.com/zhigang1992/firebase-tools.git
synced 2026-05-28 15:23:04 +08:00
Logout now also deauthorizes your session token
This commit is contained in:
committed by
Michael Bleigh
parent
4fd60e15db
commit
9c179049ea
@@ -6,19 +6,41 @@ var logger = require('../lib/logger');
|
||||
var chalk = require('chalk');
|
||||
var RSVP = require('rsvp');
|
||||
var utils = require('../lib/utils');
|
||||
var api = require('../lib/api');
|
||||
var _ = require('lodash');
|
||||
|
||||
module.exports = new Command('logout')
|
||||
.description('delete local authentication data')
|
||||
.action(function() {
|
||||
.action(function(options) {
|
||||
var user = configstore.get('user');
|
||||
var session = configstore.get('session');
|
||||
if (user || session) {
|
||||
configstore.del('user');
|
||||
configstore.del('session');
|
||||
utils.logSuccess('Logged out from ' + chalk.bold(user.email));
|
||||
var token = utils.getInheritedOption(options, 'token') || _.get(session, 'token');
|
||||
api.setToken(token);
|
||||
var next;
|
||||
if (token) {
|
||||
next = api.request('DELETE', '/account/token', {
|
||||
auth: true
|
||||
});
|
||||
} else {
|
||||
logger.info('No need to logout, not logged in');
|
||||
next = RSVP.resolve();
|
||||
}
|
||||
|
||||
return RSVP.resolve();
|
||||
var cleanup = function() {
|
||||
if (token || user || session) {
|
||||
configstore.del('user');
|
||||
configstore.del('session');
|
||||
var msg = 'Logged out';
|
||||
if (user) {
|
||||
msg += ' from ' + chalk.bold(user.email);
|
||||
}
|
||||
utils.logSuccess(msg);
|
||||
} else {
|
||||
logger.info('No need to logout, not logged in');
|
||||
}
|
||||
};
|
||||
|
||||
return next.then(cleanup, function() {
|
||||
utils.logWarning('Invalid session token, did not need to deauthorize');
|
||||
cleanup();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user