Advertisement
Guest User

Untitled

a guest
Apr 21st, 2017
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. export default function (Vue){
  2. Vue.auth = {
  3. // set token
  4. setToken (token , expires_in){
  5. localStorage.setItem('token' , token);
  6. localStorage.setItem('expires_in' , expires_in)
  7. },
  8. // get token
  9. getToken (){
  10. var token = localStorage.getItem('token')
  11. var expires_in = localStorage.getItem('expires_in')
  12. if( ! token || ! expires_in)
  13. {
  14. return null ;
  15. }
  16. if(Date.now() > parseInt(expires_in)){
  17. this.destroyToken();
  18. return null;
  19. }
  20. return token;
  21. },
  22.  
  23. // destroy token
  24. destroyToken (){
  25. console.log('destroyToken');
  26. localStorage.removeItem('token');
  27. localStorage.removeItem('expires_in')
  28. },
  29.  
  30. // isAuthenticated
  31. isAuthenticated (){
  32. return this.getToken()
  33. }
  34. };
  35.  
  36. Object.defineProperties(Vue.prototype , {
  37. $auth : {
  38. get(){
  39. return Vue.auth
  40. }
  41. }
  42. })
  43. }
  44.  
  45. <script type="text/babel">
  46.  
  47. export default{
  48. data() {
  49. return {
  50. loginForm: {
  51. email: '',
  52. password: ''
  53. },
  54. forgotForm :{
  55. email : ''
  56. },
  57. toggleForms: false,
  58.  
  59. }
  60. },
  61. created(){
  62. console.log(this.$store.state);
  63. },
  64. methods: {
  65. login (loginForm){
  66. let self = this ;
  67. var data = {
  68. client_id : 2,
  69. client_secret : '8WCDtW3wKeeNUBgwHviFoX7JmaVPU0HjFto9kwqv',
  70. grant_type : 'password',
  71. username : loginForm.email,
  72. password : loginForm.password
  73. };
  74. console.log(this.$store.state);
  75. axios.post('/oauth/token', data)
  76. .then((response) =>{
  77.  
  78. self.$auth.setToken(response.data.access_token , response.data.expires_in+ Date.now());
  79. console.log(response.data.expires_in);
  80. })
  81. .catch(function (error) {
  82. console.log(error);
  83. });
  84. },
  85.  
  86. forgotPassword: function () {
  87. axios.post('/password', this.forgotForm).then(function (response) {
  88. console.log(response);
  89. }).catch(function (error) {
  90. console.log(error);
  91. });
  92. },
  93.  
  94. hideShowForms: function () {
  95. this.toggleForms = !this.toggleForms;
  96. }
  97. }
  98. }
  99.  
  100. <template>
  101. <div>
  102. <guest-main v-show="!isAuth"></guest-main>
  103.  
  104. <auth-main v-show="isAuth"></auth-main>
  105. </div>
  106. </template>
  107.  
  108. <script>
  109. export default {
  110. data () {
  111. return {
  112. isAuth : this.$auth.getToken()
  113. }
  114. },
  115. watch: {
  116. $route () {
  117. if (!this.$auth.getToken()) {
  118. this.isAuth = false;
  119.  
  120. console.log("here");
  121. } else {
  122.  
  123. console.log(this.isAuth);
  124. this.isAuth = true;
  125.  
  126. }
  127. }
  128. }
  129. }
  130. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement