Есть ли способ аутентификации двух сущностей в Feathers JS? - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь добавить JWT-аутентификацию в приложение Feathers JS, но мне точно нужно добавить две разные сущности для аутентификации, например: администраторы и клиенты, каждая из которых перенаправляет на другой компонент в Vue JS.

Вот мой default.json, где я добавил эти две сущности.

"strategies": [
  "jwt",
  "local",
  "client"
],
"local": {
  "name": "local",
  "entity": "user",
  "usernameField": "email",
  "passwordField": "password",
  "service": "users"
},
"client": {
  "name": "client",
  "entity": "customer",
  "usernameField": "email",
  "passwordField": "password",
  "service": "customers"
},

А вот моя конечная точка аутентификации (authentication.js)

const authentication = require('@feathersjs/authentication');
const jwt = require('@feathersjs/authentication-jwt');
const local = require('@feathersjs/authentication-local');


module.exports = function (app) {
  const config = app.get('authentication');

  // Set up authentication with the secret
  app.configure(authentication(config));
  app.configure(local(config.jwt));
  app.configure(local(config.local));
  app.configure(local(config.client));
  app.configure(jwt(config.local));
  app.configure(jwt(config.client));

  // The `authentication` service is used to create a JWT.
  // The before `create` hook registers strategies that can be used
  // to create a new valid JWT (e.g. local or oauth2)
  app.service('authentication').hooks({
    before: {
      create: [
        authentication.hooks.authenticate(config.strategies)
      ],
      remove: [
        authentication.hooks.authenticate('jwt')
      ]
    }
  });
};

Когда я пытаюсь войти черезИсполнительный он регистрирует меня правильно, указывая на мою таблицу пользователей, в которой зарегистрирован пользователь, но при попытке клиентской сущности он пытается войти в систему, используя ту же таблицу пользователей, потому что возвращает мне объект пользователя из этой таблицы.

...