Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. <template>
  2. <div id="app">
  3. <router-view v-if="currentUser"></router-view>
  4. <login v-else></login>
  5. </div>
  6. </template>
  7.  
  8. <script>
  9. import Login from './components/auth/login'
  10. import User from './utilities/user'
  11. export default {
  12. name: 'app',
  13.  
  14. store: ['currentUser'],
  15.  
  16. mounted() {
  17. this.login()
  18. this.$api
  19. .service('user')
  20. .on('updated', user => this.onCurrentUserUpdated(user, this))
  21. .on('patched', user => this.onCurrentUserUpdated(user, this))
  22. },
  23.  
  24. methods: {
  25. /**
  26. * Watch for the currentUser to be updated.
  27. *
  28. * @return {void}
  29. */
  30. onCurrentUserUpdated(user, vm) {
  31. if (user._id === vm.currentUser._id) {
  32. vm.currentUser = new User(user)
  33. }
  34. },
  35.  
  36. /**
  37. * Attempt to authenticate using credentials stored in localStorage.
  38. *
  39. * @return {void}
  40. */
  41. login() {
  42. let token = window.localStorage.getItem('feathers-jwt')
  43. if (token) {
  44. this.$api
  45. .authenticate('jwt')
  46. .then(res => this.$api.passport.verifyJWT(res.accessToken))
  47. .then(res => this.$api.service('user').get(res.userId))
  48. .then(user => { this.currentUser = new User(user) })
  49. .catch(error => console.error(error))
  50. }
  51. }
  52. },
  53.  
  54. components: {
  55. 'login': Login
  56. }
  57. }
  58. </script>
  59.  
  60. <style lang="scss">
  61. $icon-font-path: "~bootstrap-sass/assets/fonts/bootstrap/";
  62. @import "~bootstrap-sass/assets/stylesheets/bootstrap";
  63. @import "~sweetalert/dist/sweetalert";
  64. @import "./assets/scss/app";
  65. </style>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement