话不多数直接上代码!
在公司里做的朋友都知道,一般公司里面给的接口都需要在请求头里面加token才能访问,像注册登录之类的借口才会放到白名单里面,如果是自己练习,没有用到token的话,只需要将request.js里面的这些代码删除即可,不删除也可以使用
let cookie=uni.getStorageSync('cookies')
if(cookie.data){
app.globalData.bjHeader.Authorization = cookie.data.access_token;
}
if(data.isLogin&&res.data.code==200){// 登录请求
// 将用户的cookie存入至本地
uni.setStorageSync('cookies', res.data)
}
正文开始!
在app.vue文件中加入globalData
// 全局配置
globalData: {
appid: '', //小程序appid
Ip: ", //固定不变得url部分 ip+端口号
Header: { //request 请求头
'content-type': 'application/x-www-form-urlencoded;charset=utf-8', // 默认值
'Authorization': ''
},
},
新建一个js文件在里面加上如下代码
const app = getApp({allowDefault: true})
export default (url, data={}, method='GET') => {
return new Promise((resolve, reject) => {
let cookie=uni.getStorageSync('cookies')
if(cookie.data){
app.globalData.bjHeader.Authorization = cookie.data.access_token;
}
// 1. new Promise初始化promise实例的状态为pending
uni.request({
url: app.globalData.Ip + url,
data,
method,
header:app.globalData.Header,
success: (res) => {
if(data.isLogin&&res.data.code==200){// 登录请求
// 将用户的cookie存入至本地
uni.setStorageSync('cookies', res.data)
}
resolve(res.data); // resolve修改promise的状态为成功状态resolved
},
fail: (err) => {
console.log('请求失败: ', err);
reject(err); // reject修改promise的状态为失败状态 rejected
}
})
})
}
下面是登录的请求,在登录的vue文件中找到script
<script>
const app = getApp({
allowDefault: true
})
const url=''
import request from ''
export default {
data() {
return {
appid: app.globalData.appid,
}
},
methods: {
dologn() {
let that = this
uni.login({
success(res) {
console.log(res)
that.code=res.code
that.login(that, res.code)
},fail(err) {
console.log(err)
}
})
},
//封装登录请求
async login(that, code) {
console.log(that.appid)
// 登录
let userInfo = await request(url, {
appid: that.appid,
code: code,
is_login: true
});
if (userInfo.code == 200 && userInfo.data) {
uni.reLaunch({
url:'../home/index',
})
} else {
console.log(userInfo)
uni.showToast({
title: '请退出,重新登陆!',
icon: 'error'
})
}
}
}
}
</script>
大致的就这么多了,如果有帮助到您,请给个关注,加个收藏,这将是我创作的最大力量,谢谢!
版权声明:本文为mrcaoyongkang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。