Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export default function (Vue){
- Vue.auth = {
- // set token
- setToken (token , expires_in){
- localStorage.setItem('token' , token);
- localStorage.setItem('expires_in' , expires_in)
- },
- // get token
- getToken (){
- var token = localStorage.getItem('token')
- var expires_in = localStorage.getItem('expires_in')
- if( ! token || ! expires_in)
- {
- return null ;
- }
- if(Date.now() > parseInt(expires_in)){
- this.destroyToken();
- return null;
- }
- return token;
- },
- // destroy token
- destroyToken (){
- console.log('destroyToken');
- localStorage.removeItem('token');
- localStorage.removeItem('expires_in')
- },
- // isAuthenticated
- isAuthenticated (){
- return this.getToken()
- }
- };
- Object.defineProperties(Vue.prototype , {
- $auth : {
- get(){
- return Vue.auth
- }
- }
- })
- }
- <script type="text/babel">
- export default{
- data() {
- return {
- loginForm: {
- email: '',
- password: ''
- },
- forgotForm :{
- email : ''
- },
- toggleForms: false,
- }
- },
- created(){
- console.log(this.$store.state);
- },
- methods: {
- login (loginForm){
- let self = this ;
- var data = {
- client_id : 2,
- client_secret : '8WCDtW3wKeeNUBgwHviFoX7JmaVPU0HjFto9kwqv',
- grant_type : 'password',
- username : loginForm.email,
- password : loginForm.password
- };
- console.log(this.$store.state);
- axios.post('/oauth/token', data)
- .then((response) =>{
- self.$auth.setToken(response.data.access_token , response.data.expires_in+ Date.now());
- console.log(response.data.expires_in);
- })
- .catch(function (error) {
- console.log(error);
- });
- },
- forgotPassword: function () {
- axios.post('/password', this.forgotForm).then(function (response) {
- console.log(response);
- }).catch(function (error) {
- console.log(error);
- });
- },
- hideShowForms: function () {
- this.toggleForms = !this.toggleForms;
- }
- }
- }
- <template>
- <div>
- <guest-main v-show="!isAuth"></guest-main>
- <auth-main v-show="isAuth"></auth-main>
- </div>
- </template>
- <script>
- export default {
- data () {
- return {
- isAuth : this.$auth.getToken()
- }
- },
- watch: {
- $route () {
- if (!this.$auth.getToken()) {
- this.isAuth = false;
- console.log("here");
- } else {
- console.log(this.isAuth);
- this.isAuth = true;
- }
- }
- }
- }
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement