2015-10-12 2 views
1

Я следил за этим учебным пособием https://ericswann.wordpress.com/2015/04/24/nozus-js-1-intro-to-sails-with-passport-and-jwt-json-web-token-auth/, и я отлично его работаю. Единственное, чего не осталось, это функция выхода из системы. Я читал, что могу просто удалить токен с клиентской стороны, но все же считаю, что это был бы лучший подход и удалить его с сервера.Sails JS - удалить существующий JWT

Это мой AuthController.js

var passport = require('passport'); 
//Triggers when user authenticates via passport 
function _onPassportAuth(req, res, error, user, info) { 
    if (error) return res.serverError(error); 
    if (!user) return res.unauthorized(null, info && info.code, info && info.message); 
    return res.ok({ 
     // TODO: replace with new type of cipher service 
     token: HashService.createToken(user), 
     user: user 
    }); 
} 

module.exports = { 
    signup: function (req, res) { 
     User.create(_.omit(req.allParams(), 'id')).then(function (user) { 
      return { 
       // TODO: replace with new type of cipher service 
       token: HashService.createToken(user), 
       user: user 
      }; 
     }).then(res.created).catch(res.serverError); 
    }, 

    signin: function (req, res) { 
     passport.authenticate('local', _onPassportAuth.bind(this, req, res))(req, res); 
    } 
}; 

Как я могу уничтожить маркер?

+0

В чем ваш вопрос? – sgress454

+0

Как уничтожить токен, когда я хочу выйти из системы. Извини, я виноват. –

ответ

1

Вам не нужно уничтожать токен.

Это идея жетонов - нет функции signin \ signup, только токены, которые могут быть проверены (или нет).

Если вы хотите «выйти из системы» пользователя, тогда просто удалите токен из хранилища на стороне клиента. Во всяком случае, токен будет действителен до тех пор, пока вы не измените секретный ключ или сертификат или не истечет срок его действия.

UPD:

, но все-таки я думаю, что это был бы лучший подход также удалить его с сервера.

Сервер ничего не хранит.

+0

Я понимаю. Но как насчет коллекции MongoDB для черного списка? –

+0

@ghaiklor Я также хочу знать, как удалить токен с клиентской стороны, когда он делает запрос на маршрут/выход из системы? –

+0

@ Lexynux просто удаляет его из хранилища. В чем проблема? – ghaiklor