Обновление страницы на пути к ресурсу приводит к выходу из приложения

Приложение не перезагружает токен JWT для вызовов API при перезагрузке страницы. Повторная загрузка по пути панели мониторинга работает хорошо, но не выполняется по путям ресурсов.

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

````

//feathersClient.js
import feathers from 'feathers-client';

const host = 'http://localhost:3030';

export default feathers()
    .configure(feathers.hooks())
    .configure(feathers.rest(host).fetch(window.fetch.bind(window)))
    .configure(feathers.authentication({ jwtStrategy: 'jwt', storage: window.localStorage }));

//authClient.js
import { authClient } from 'aor-feathers-client';
import feathersClient from './ApiClient/feathersClient';

const authClientOptions = {
    storageKey: 'feathers-jwt',
    authenticate: { strategy: 'local' },
};

export default authClient(feathersClient, authClientOptions)

//App.js
import React from 'react';
import { Admin, Resource } from 'admin-on-rest';
import { Delete } from 'admin-on-rest/lib/mui'
import apiClient from './ApiClient'
import authClient from './authClient'
import Dashboard from './components/Dashboard'
import { ProjectList, ProjectCreate, ProjectShow, ProjectEdit } from './components/Projects'
import { PeopleList, PeopleCreate, PeopleShow, PeopleEdit } from './components/Peoples'

const App = () => (
    <Admin
        authClient={authClient}
        restClient={apiClient}
        title="SWP by Akoya"
        dashboard={Dashboard}>
        <Resource name="projects"
            list={ProjectList}
            create={ProjectCreate}
            show={ProjectShow}
            edit={ProjectEdit}
            remove={Delete}/>
    </Admin>
)

export default App

person Fonzarely    schedule 31.08.2017    source источник


Ответы (1)


Взгляните на пример чата React. В нем показано, как пройти аутентификацию с помощью локальной аутентификации или сначала попытавшись использовать сохраненный токен .

// client.js
import io from 'socket.io-client';
import feathers from 'feathers/client';
import hooks from 'feathers-hooks';
import socketio from 'feathers-socketio/client';
import authentication from 'feathers-authentication-client';

const socket = io('http://localhost:3030');
const client = feathers();

client.configure(hooks());
client.configure(socketio(socket));
client.configure(authentication({
  storage: window.localStorage
}));

export default client;

затем

client.authenticate()
  // Authentication with stored token was successful
  .then(() => showApplication())
  // Authentication failed. Show login page
  .catch(error => showLogin());
person Daff    schedule 31.08.2017