2017-09-06 108 views
2

我在项目中同时使用axios和vue-resource。因为我从vue-resource开始,并且在帖子上不起作用,所以我在登录中使用了axios作为帖子。如何在VueJS登录后获取用户

我是vuejs的新手,我不知道如何在登录后获取用户。 Loggin是一个组件,并在标题中,这是另一个组件,我想把该用户的名称登录。

如何获得该用户在登录后的头部组件?如果你有任何想法随时告诉我。或者如果你需要我提供更多的代码,请告诉我。在登录组件

login() { 
    axios.post('/login', this.user) 
    .then ((response) => { 
     AuthPlugin.getToken(response.data); 
     alertify.success("Success! You are now logged in."); 
     this.$http.get("/user", this.user) 
     .then((response) => { 
     this.$router.push('/home'); 
     }) 
    }) 
     .catch(function (error) { 
     alertify.error('Invalid User'); 
    }); 
} 

页眉部分,我希望把记录在

<div class="dropdown dropdown-navbar-btn-wrapper"> 
    <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> 
     <i class="ti-user"></i> The Login User <i class="ti-angle-down"></i> 
    </button> 
    <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> 
     <a class="dropdown-item" href="#">My account</a> 
     <a class="dropdown-item logout-btn" href="#" @click.prevent="logout"><i class="ti-power-off"></i> Log out</a> 
    </div> 
</div> 
+0

哪个插件您使用与您的输入获得

data() { return { user: { username: '', password: '' } } } 

然后在方法的一部分进行处理(添加用户数据)和emitUser()用于存储身份验证令牌? ('AuthPlugin.getToken(response.data);') –

+0

我自己构建它。在getToken里面我有'const token = localStorage。getItem('token');'我检查标记是否存在。 –

回答

1

我建议你使用事件总线来询问你的问题。

在main.js添加

export const EventBus = new Vue(); 

在报头使用事件总线

import { eventBus } from './main'; 

在数据

data() { 
    return { 
     username: '', 
    } 
} 

和方法

onUser() { 
    eventBus.$on('loggedInUser', (user) => { 
     // see how you get this object to get the user.username 
     this.username = user; 
    }) 

在控制台中,如果你使用console.log(用户),你也可以看到密码。然后,如果你想了解更多关于这个用户的信息,假设你有一个用户表和一个$ http.get(/ users),你可以与用户建立一个循环,并且看到一个用户拥有登录用户的用户名。

它添加上创建自动运行

created() { 
    this.onUser(); 
} 

,您可以在这里对谁是现在

<button><i class="ti-user"></i> {{username}} <i class="ti-angle-down"></i></button> 

登录登录用户名做了两个功能是打电话时的处理程序你按下点击。

<a @click="handler">Login</a> 

emitUser() { 
    eventBus.$emit('loggedInUser', this.user); 
}, 
handler() { 
    this.login(); 
    this.emitUser(); 
} 
0

用户可以存储用户的细节和令牌作为本地存储/饼干

登录方法。 然后使用函数获取用户详细信息。

也看看Vue JWT Auth

+0

在localStorage中,我向你展示了,在你回答之前,我只能得到令牌。所以在新网络/响应中,我只从服务器获得令牌。请告诉我你如何说取得用户? –

+1

在后端每当用户通过身份验证时,您需要使用令牌发送用户详细信息。 –

相关问题