【谷粒学院】016
【谷粒学院】016
一、登录逻辑简单梳理1、前言由于自己的年少情况,遇到了很多阻碍,甚至中途泄气,虽然通过自己研究了解到很多知识吧,但项目的进度真实严重滞后了,还好最终到了通路,总结出的教训:学习最好按照老师教的一步一步来,不要好高骛远、自以为是,要尽量使用老师使用的框架版本,加油!2、原始登录逻辑原始登录是由这个前端框架自己模拟的,官方提供的流程说明是:UI 组件交互操作;调用统一管理的 ap
【谷粒学院】016
1、前言
由于自己的年少情况,遇到了很多阻碍,甚至中途泄气,虽然通过自己研究了解到很多知识吧,但项目的进度真实严重滞后了,还好最终到了通路,总结出的教训:学习最好按照老师教的一步一步来,不要好高骛远、自以为是,要尽量使用老师使用的框架版本,加油!
2、原始登录逻辑
原始登录是由这个前端框架自己模拟的,官方提供的流程说明是:
- UI 组件交互操作;
- 调用统一管理的 api service 请求函数;
- 使用封装的 request.js 发送请求;
- 获取服务端返回;
- 更新 data;
其中第4步,在此项目中是使用mock模拟的数据,所以说,我们要做的是改变请求地址,之前从mock拿数据,现在从我们的后端项目拿数据;
1、修改请求地址
vue-element-admin这个框架将请求统一封装在了 request.js 里面,我们只需要修改baseURL即可;
request.js:
代码语言:javascript代码运行次数:0运行复制import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'
// create an axios instance
ct service = ({
// baseURL: VUE_APP_BASE_API, // url = base url + request url
// withCredentials: true, // send cookies when cross-domain requests
// 我们只需要这个修改baseURL即可修改全局的请求地址
baseURL: 'http://localhost:8001',
timeout: 5000 // request timeout
})
// request interceptor
service.interceptors.request.use(
config => {
// do something before request is sent
if (store.) {
// let each request carry token
// ['X-Token'] is a custom headers key
// please modify it according to the actual situation
config.headers['X-Token'] = getToken()
}
return config
},
error => {
// do something with request error
cole.log(error) // for debug
return Promise.reject(error)
}
)
// respe interceptor
service.interceptors.respe.use(
/**
* If you want to get http information such as headers or status
* Please return respe => respe
*/
/**
* Determine the request status by custom code
* Here is just an example
* You can also judge the status by HTTP Status Code
*/
respe => {
ct res = respe.data
// if the custom code is not 20000, it is judged as an error.
if ( !== 20000) {
Message({
message: || 'Error',
type: 'error',
duration: 5 * 1000
})
// 50008: Illegal token; 50012: Other clients logged in; 50014: Token expired;
if ( === 50008 || === 50012 || === 50014) {
// to re-login
('You have been logged out, you can cancel to stay on this page, or log in again', 'Confirm logout', {
confirmButtonText: 'Re-Login',
cancelButtonText: 'Cancel',
type: 'warning'
}).then(() => {
store.dispatch('user/resetToken').then(() => {
location.reload()
})
})
}
return Promise.reject(new Error( || 'Error'))
} else {
return res
}
},
error => {
cole.log('err' + error) // for debug
Message({
message: ,
type: 'error',
duration: 5 * 1000
})
return Promise.reject(error)
}
)
export default service
2、登录请求实现
说明:
当我们点击登录按钮的时候会向后台发送两个请求,一个是/edu-admin/user/login,另一个是/edu-admin/user/info,所以我们需要在后台实现这两个接口;
代码实现LoginController:
代码语言:javascript代码运行次数:0运行复制package com.;
import com.zibomon.utils.R;
import org.springframework.web.bind.annotation.*;
@CrossOrigin //跨域
@RestController
@RequestMapping("/edu-admin/user")
public class LoginController {
@PostMapping("/login")
public R login(){
return ().data("token","admin");
}
@GetMapping("/info")
public R info(){
return ().data("roles","[admin]").data("name","admin").data("avatar",".gif");
}
@PostMapping("/logout")
public R logout(){
return ().success(true);
}
}
、关于跨域问题
为什么会出现跨域问题:
通过一个地址去访问另一个地址,这个过程中三个地方有任何一个地方不一样就会出现跨域问题,三个地方:访问协议,ip地址,端口号;
如何解决跨域问题:
在后台相关controller上面添加@CrossOrigin注解即可;
4、测试
请求地址修改成功了,跨域问题也解决了
5、为什么两个login?
OPTIOS请求:只是为了测试服务器是否可以连通,不会真正进行请求,更不会返回数据;
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-23 09:35:18
推荐阅读
留言与评论(共有 7 条评论) |
本站网友 隐私法 | 2分钟前 发表 |
"admin").data("avatar" | |
本站网友 turkiye | 19分钟前 发表 |
5000 // request timeout }) // request interceptor service.interceptors.request.use( config => { // do something before request is sent if (store.) { // let each request carry token // ['X-Token'] is a custom headers key // please modify it according to the actual situation config.headers['X-Token'] = getToken() } return config } | |
本站网友 小贝壳海鲜自助火锅 | 1分钟前 发表 |
三个地方:访问协议 | |
本站网友 天津底商出租 | 8分钟前 发表 |
登录功能实现1 | |
本站网友 a型血的男人 | 26分钟前 发表 |
you can cancel to stay on this page | |
本站网友 北京三星手机专卖店 | 9分钟前 发表 |
登录请求实现说明:当我们点击登录按钮的时候会向后台发送两个请求 |