diff options
Diffstat (limited to 'vnext/src')
-rw-r--r-- | vnext/src/App.js | 10 | ||||
-rw-r--r-- | vnext/src/api/index.js | 16 | ||||
-rw-r--r-- | vnext/src/components/Types.js | 2 |
3 files changed, 15 insertions, 13 deletions
diff --git a/vnext/src/App.js b/vnext/src/App.js index 14ae7d5e..20ece23e 100644 --- a/vnext/src/App.js +++ b/vnext/src/App.js @@ -15,6 +15,8 @@ import Avatar from './components/Avatar'; import Header from './components/Header'; import SearchBox from './components/SearchBox'; +import cookies from 'react-cookies'; + import { me } from './api'; export default class App extends React.Component { @@ -22,13 +24,13 @@ export default class App extends React.Component { super(props); let params = qs.parse(window.location.search); if (params.hash) { - localStorage.visitor = JSON.stringify({ uid: 0, hash: params.hash }); + cookies.save('hash', params.hash, { path: '/' }); window.history.replaceState({}, document.title, `${window.location.protocol}//${window.location.host}${window.location.pathname}`); } this.state = { - visitor: localStorage.visitor ? JSON.parse(localStorage.visitor) : { + visitor: { uid: 0, - hash: params.hash || '' + hash: cookies.load('hash') } }; this.pm = React.createRef(); @@ -87,7 +89,7 @@ export default class App extends React.Component { } componentDidMount() { - const { hash, uid } = this.state.visitor; + const { hash } = this.state.visitor; this.initWS(); if (hash) { me().then(visitor => this.auth(visitor)); diff --git a/vnext/src/api/index.js b/vnext/src/api/index.js index c9ae5688..efa57cf1 100644 --- a/vnext/src/api/index.js +++ b/vnext/src/api/index.js @@ -1,4 +1,5 @@ import axios from 'axios'; +import cookies from 'react-cookies'; const apiBaseUrl = 'https://api.juick.com'; @@ -6,11 +7,9 @@ const client = axios.create({ baseURL: apiBaseUrl }); client.interceptors.request.use(config => { - if (localStorage.visitor) { - config.params = Object.assign(config.params || {}, { - hash: JSON.parse(localStorage.visitor).hash - }); - } + config.params = Object.assign(config.params || {}, { + hash: cookies.load('hash') + }); return config; }); @@ -22,10 +21,11 @@ export function me(username = '', password = '') { 'Authorization': 'Basic ' + window.btoa(unescape(encodeURIComponent(username + ':' + password))) } : {} }).then(response => { - localStorage.visitor = JSON.stringify(response.data); - resolve(response.data); + let visitor = response.data; + cookies.save('hash', visitor.hash, { path: '/' }); + resolve(visitor); }).catch(reason => { - localStorage.clear(); + cookies.remove('hash', { path: '/'}); reject(reason); }); }); diff --git a/vnext/src/components/Types.js b/vnext/src/components/Types.js index f7177f6a..6596dc8e 100644 --- a/vnext/src/components/Types.js +++ b/vnext/src/components/Types.js @@ -2,7 +2,7 @@ import PropTypes from 'prop-types'; export const UserType = PropTypes.shape({ uid: PropTypes.number.isRequired, - uname: PropTypes.string.isRequired + uname: PropTypes.string }); export const MessageType = PropTypes.shape({ |