VUEjs& vuex与laravel后端身份验证/记住

时间:2017-11-13 00:22:43

标签: javascript laravel oauth vue.js vuex

我正在使用vuejs和vuex进行测试应用。我可以注册/注册用户和 我还让用户登录并在localstorage vuex中设置令牌。但是,在刷新后,您在何处以及如何检查用户是否已登录?

我目前正在使用VUEX处理与axios的异步调用。 我"商店内的结构"文件夹如下   - Index.js     - actions.js     - mutation.js     - getters.js

这是我的actions.js

的一部分
import config from './../config'
import axios from 'axios'
import Ls from '../mixins/localStorage'

axios.defaults.headers.common = {
    'Accept': 'application/json'
};

export default {
    login ({commit,dispatch}, user) {
        commit('setLoading', {
            modalName: 'loginModal',
            state: true
        });
        const endpoint = config.apiUrl + 'clients/web/login';
        axios.post(endpoint, user)
            .then(response => {
                Ls.set('token',response.data.request_key);
                dispatch('getUserData');
                return true;
            })
            .catch(e => {
                commit('setLoading', {
                    modalName: 'loginModal',
                    state: false
                });
                console.log(e);
                return false
            });
    },
    getUserData({commit}){
        const endpoint = config.apiUrl + 'user/profile';
        if(Ls.get('token')) {
            axios.defaults.headers.common['Authorization'] = 'Bearer ' + Ls.get('token').replace(/(^\")|(\"$)/g, '');
        }
        axios.get(endpoint)
            .then(response => {
                commit('setUser',response.data);
                commit('hideModal', 'loginModal');
            })
            .catch(e => {
                console.log(e);
                return false
            });
    }
}

所以问题是

  1. 这是记录用户的正确方法吗?
  2. 您如何以及在何处检查用户是否已登录?若然,您接下来该做什么?
  3. 提前致谢!

0 个答案:

没有答案