mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-14 10:16:26 +00:00
改善:立ち上げたらUserの情報(PlanetのSnippetsなどを含めた)を検証して、データを全部リロードする
This commit is contained in:
@@ -4,5 +4,6 @@ module.exports = Reflux.createActions([
|
|||||||
'login',
|
'login',
|
||||||
'register',
|
'register',
|
||||||
'logout',
|
'logout',
|
||||||
'updateProfile'
|
'updateProfile',
|
||||||
|
'refreshUser'
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ var ReactRouter = require('react-router')
|
|||||||
var RouteHandler = ReactRouter.RouteHandler
|
var RouteHandler = ReactRouter.RouteHandler
|
||||||
var request = require('superagent')
|
var request = require('superagent')
|
||||||
|
|
||||||
|
var AuthActions = require('../Actions/AuthActions')
|
||||||
|
|
||||||
var AuthStore = require('../Stores/AuthStore')
|
var AuthStore = require('../Stores/AuthStore')
|
||||||
|
|
||||||
var apiUrl = require('../../../config').apiUrl
|
var apiUrl = require('../../../config').apiUrl
|
||||||
@@ -43,7 +45,7 @@ module.exports = React.createClass({
|
|||||||
|
|
||||||
var user = JSON.parse(localStorage.getItem('user'))
|
var user = JSON.parse(localStorage.getItem('user'))
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
user.Planets.forEach(fetchPlanet)
|
AuthActions.refreshUser()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
this.transitionTo('login')
|
this.transitionTo('login')
|
||||||
@@ -55,9 +57,9 @@ module.exports = React.createClass({
|
|||||||
if (res == null || res.status == null) {
|
if (res == null || res.status == null) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
var user
|
||||||
if (res.status === 'loggedIn' || res.status === 'registered') {
|
if (res.status === 'loggedIn' || res.status === 'registered') {
|
||||||
var user = res.data
|
user = res.data
|
||||||
var planet = user.Planets.length > 0 ? user.Planets[0] : null
|
var planet = user.Planets.length > 0 ? user.Planets[0] : null
|
||||||
if (planet == null) {
|
if (planet == null) {
|
||||||
this.transitionTo('user', {userName: user.name})
|
this.transitionTo('user', {userName: user.name})
|
||||||
@@ -72,6 +74,13 @@ module.exports = React.createClass({
|
|||||||
this.transitionTo('login')
|
this.transitionTo('login')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (res.status === 'userRefreshed') {
|
||||||
|
console.log('refreshed')
|
||||||
|
user = res.data
|
||||||
|
user.Planets.forEach(fetchPlanet)
|
||||||
|
return
|
||||||
|
}
|
||||||
},
|
},
|
||||||
render: function () {
|
render: function () {
|
||||||
// Redirect Login state
|
// Redirect Login state
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ var AuthStore = Reflux.createStore({
|
|||||||
this.listenTo(AuthActions.register, this.register)
|
this.listenTo(AuthActions.register, this.register)
|
||||||
this.listenTo(AuthActions.logout, this.logout)
|
this.listenTo(AuthActions.logout, this.logout)
|
||||||
this.listenTo(AuthActions.updateProfile, this.updateProfile)
|
this.listenTo(AuthActions.updateProfile, this.updateProfile)
|
||||||
|
this.listenTo(AuthActions.refreshUser, this.refreshUser)
|
||||||
},
|
},
|
||||||
// Reflux Store
|
// Reflux Store
|
||||||
login: function (input) {
|
login: function (input) {
|
||||||
@@ -58,6 +59,30 @@ var AuthStore = Reflux.createStore({
|
|||||||
})
|
})
|
||||||
}.bind(this))
|
}.bind(this))
|
||||||
},
|
},
|
||||||
|
refreshUser: function () {
|
||||||
|
request
|
||||||
|
.get(apiUrl + 'auth/user')
|
||||||
|
.set({
|
||||||
|
Authorization: 'Bearer ' + localStorage.getItem('token')
|
||||||
|
})
|
||||||
|
.end(function (err, res) {
|
||||||
|
if (err) {
|
||||||
|
console.error(err)
|
||||||
|
if (res.status === 401 || res.status === 403) {
|
||||||
|
AuthActions.logout()
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var user = res.body
|
||||||
|
localStorage.setItem('user', JSON.stringify(user))
|
||||||
|
|
||||||
|
this.trigger({
|
||||||
|
status: 'userRefreshed',
|
||||||
|
data: user
|
||||||
|
})
|
||||||
|
}.bind(this))
|
||||||
|
},
|
||||||
logout: function () {
|
logout: function () {
|
||||||
localStorage.removeItem('token')
|
localStorage.removeItem('token')
|
||||||
localStorage.removeItem('user')
|
localStorage.removeItem('user')
|
||||||
|
|||||||
Reference in New Issue
Block a user