Skip to content

Commit 714b5f7

Browse files
committed
改善:立ち上げたらUserの情報(PlanetのSnippetsなどを含めた)を検証して、データを全部リロードする
1 parent 51fb43d commit 714b5f7

3 files changed

Lines changed: 39 additions & 4 deletions

File tree

browser/main/Actions/AuthActions.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ module.exports = Reflux.createActions([
44
'login',
55
'register',
66
'logout',
7-
'updateProfile'
7+
'updateProfile',
8+
'refreshUser'
89
])

browser/main/Containers/MainContainer.jsx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ var ReactRouter = require('react-router')
44
var RouteHandler = ReactRouter.RouteHandler
55
var request = require('superagent')
66

7+
var AuthActions = require('../Actions/AuthActions')
8+
79
var AuthStore = require('../Stores/AuthStore')
810

911
var apiUrl = require('../../../config').apiUrl
@@ -43,7 +45,7 @@ module.exports = React.createClass({
4345

4446
var user = JSON.parse(localStorage.getItem('user'))
4547
if (user != null) {
46-
user.Planets.forEach(fetchPlanet)
48+
AuthActions.refreshUser()
4749
return
4850
}
4951
this.transitionTo('login')
@@ -55,9 +57,9 @@ module.exports = React.createClass({
5557
if (res == null || res.status == null) {
5658
return
5759
}
58-
60+
var user
5961
if (res.status === 'loggedIn' || res.status === 'registered') {
60-
var user = res.data
62+
user = res.data
6163
var planet = user.Planets.length > 0 ? user.Planets[0] : null
6264
if (planet == null) {
6365
this.transitionTo('user', {userName: user.name})
@@ -72,6 +74,13 @@ module.exports = React.createClass({
7274
this.transitionTo('login')
7375
return
7476
}
77+
78+
if (res.status === 'userRefreshed') {
79+
console.log('refreshed')
80+
user = res.data
81+
user.Planets.forEach(fetchPlanet)
82+
return
83+
}
7584
},
7685
render: function () {
7786
// Redirect Login state

browser/main/Stores/AuthStore.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ var AuthStore = Reflux.createStore({
1212
this.listenTo(AuthActions.register, this.register)
1313
this.listenTo(AuthActions.logout, this.logout)
1414
this.listenTo(AuthActions.updateProfile, this.updateProfile)
15+
this.listenTo(AuthActions.refreshUser, this.refreshUser)
1516
},
1617
// Reflux Store
1718
login: function (input) {
@@ -58,6 +59,30 @@ var AuthStore = Reflux.createStore({
5859
})
5960
}.bind(this))
6061
},
62+
refreshUser: function () {
63+
request
64+
.get(apiUrl + 'auth/user')
65+
.set({
66+
Authorization: 'Bearer ' + localStorage.getItem('token')
67+
})
68+
.end(function (err, res) {
69+
if (err) {
70+
console.error(err)
71+
if (res.status === 401 || res.status === 403) {
72+
AuthActions.logout()
73+
}
74+
return
75+
}
76+
77+
var user = res.body
78+
localStorage.setItem('user', JSON.stringify(user))
79+
80+
this.trigger({
81+
status: 'userRefreshed',
82+
data: user
83+
})
84+
}.bind(this))
85+
},
6186
logout: function () {
6287
localStorage.removeItem('token')
6388
localStorage.removeItem('user')

0 commit comments

Comments
 (0)