vue实现登录_获取token_拉取用户信息

本文档介绍如何在Vue中实现登录功能并获取token,接着利用token拉取用户信息,这是后台管理系统系列的一部分。首先,创建login.js文件实现登录功能,然后封装getUserInfo.js以获取用户详情,结合element-ui进行页面布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vue实现登录_获取token_拉取用户信息_后台管理系统系列

一、接上之前封装和跨域的文章来简单进行登录页面功能

​ 这里接上之前的;

第一步
//封装好的接口文件、获取的是一个模拟的接口
import { login } from './API_TYPE'
//封装的axios的post方法
import { POST } from './request'
在这里默认抛出一个匿名函数并准备接收*用户名*和*密码*
export default function (username, password) {
	//返回这个post方法,这样整个函数的返回值就还是一个promise对象
    return POST(login, {
        username,
        password
    })
}

文件名:login.js

上边代码我写成了一个文件,此文件仅作用这一个方法;也可以一个文件抛出多个方法;

第二步

再封装一个文件用来获取用户信息

文件名:getUserInfo.js

//封装的axios的get方法
import { GET } from './request'
//获取info时用到的接口
import { info } from './API_TYPE'
//这里向服务器发送一个token就好,服务器查找数据依靠的就是token
//token由用户名和密码在服务器验证成功后由服务器返回
export default function (token) {
    return GET(info, token)
}

### 实现 ReactJS 和 NodeJS 微信扫码登录并展示用户信息 为了实现通过 ReactJS 和 NodeJS 完成微信扫码登录并将用户信息展示在首页的功能,以下是详细的说明: #### 技术栈概述 ReactJS 是一种用于构建用户界面的 JavaScript 库[^2],而 Nuxt.js 则是一个基于 Vue.js 的框架[^1]。尽管本项目主要涉及 ReactJS 而非 Vue/Nuxt.js,但两者都属于现前端技术的一部分。Node.js 提供了一个运行环境来处理服务器端逻辑[^3]。 #### 后端部分 (Node.js + Express) 后端负责接收来自微信的服务请求以及管理用户的会话状态。下面是如何配置 Node.js 来支持这一功能的一个简单例子: ```javascript // server.js const express = require(&#39;express&#39;); const axios = require(&#39;axios&#39;); // 用于发起 HTTP 请求到微信 API const app = express(); app.use(express.json()); let code; // 处理从微信返回的授权码 app.get(&#39;/auth&#39;, async (req, res) => { const { query } = req; if (!query.code) return res.status(400).send(&#39;No authorization code provided.&#39;); try { const response = await axios({ method: &#39;GET&#39;, url: `https://api.weixin.qq.com/sns/oauth2/access_token?appid=YOUR_APP_ID&secret=YOUR_SECRET_KEY&code=${query.code}&grant_type=authorization_code`, }); console.log(response.data); // 打印获取的数据以便调试 // 将 access token 存储起来或者直接传递给前端 res.send({ accessToken: response.data.access_token }); } catch(error){ console.error("Error fetching WeChat data:", error); res.sendStatus(500); } }); // 设置静态文件夹以托管 HTML/CSS/JavaScript 文件 app.use(express.static(__dirname + &#39;/public&#39;)); // 开启监听 app.listen(8080, () => console.log(&#39;Server running on port 8080&#39;)); ``` 上述码片段展示了如何创建一个简单的 Express 应用来接受微信回调中的认证码,并交换得到访问令牌[^4]。 #### 前端部分 (ReactJS) 对于前端而言,我们需要引导用户跳转至微信官方提供的 OAuth URL 进行身份验证。一旦完成,他们会被重定向回我们的站点携带必要的参数。 ```jsx import React from &#39;react&#39;; import &#39;./App.css&#39;; class App extends React.Component { constructor(props){ super(props); this.state={ userInfo:null, }; } componentDidMount(){ window.location.href=&#39;https://open.weixin.qq.com/connect/oauth2/authorize?appid=YOUR_WECHAT_APPID&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2Fauth&response_type=code&scope=snsapi_userinfo#wechat_redirect&#39;; } render() { let content=<p>Loading...</p>; if(this.state.userInfo!==null){ content=( <div> <h1>Hello,{this.state.userInfo.nickName}</h1> <img src={this.state.userInfo.avatarUrl} alt="Avatar"/> </div> ); } return ( <main className="container"> {content} </main> ) } } export default App; ``` 此组件会在加载时自动导航到指定链接启动微信登录流程。成功之后更新状态显示个人信息。 #### 数据流总结 整个过程大致如下: 1. 用户点击按钮触发浏览器前往特定地址。 2. 微信确认同意后将控制权交还给我们定义好的路径 `/auth` ,附带临时凭证 `code`. 3. 我们的服务器利用该 `code`,向微信申请正式的 Access Token. 4. 使用这个Token再次调用微信接口详细资料如头像昵称等。 5. 最终这些数据被送达到客户端呈现出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值