feat: 封装了接口请求的工具与获取微信授权码的方法
This commit is contained in:
3
constant/base.js
Normal file
3
constant/base.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
const isProd = true
|
||||||
|
|
||||||
|
export const BASE_URL = 'http://8.138.234.141/ingress'
|
||||||
17
manager/AuthManager.js
Normal file
17
manager/AuthManager.js
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
export function getWeChatAuthCode() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
uni.login({
|
||||||
|
provider: 'weixin',
|
||||||
|
success: (res) => {
|
||||||
|
if (res.code) {
|
||||||
|
resolve(res.code);
|
||||||
|
} else {
|
||||||
|
reject(new Error('未获取到微信授权code'));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
fail: (err) => {
|
||||||
|
reject(err);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
23
manager/LoginManager.js
Normal file
23
manager/LoginManager.js
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
import { login } from "../request/api/Index";
|
||||||
|
|
||||||
|
import { getWeChatAuthCode } from "./AuthManager";
|
||||||
|
|
||||||
|
export async function loginAuth() {
|
||||||
|
try {
|
||||||
|
const openIdCode = '0f1XVM100D5JCU1BP6400WQQFD2XVM1T'// await getWeChatAuthCode();
|
||||||
|
console.log('获取到的微信授权code:', openIdCode);
|
||||||
|
const response = await login({
|
||||||
|
openIdCode,
|
||||||
|
grant_type: 'wechat',
|
||||||
|
scope: 'server',
|
||||||
|
clientId: '1'
|
||||||
|
});
|
||||||
|
if (response.success) {
|
||||||
|
return response.data;
|
||||||
|
} else {
|
||||||
|
throw new Error(response.message || '登录失败');
|
||||||
|
}
|
||||||
|
} catch (err) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<button @click="closeDrawer" type="default">关闭</button>
|
<button @click="closeDrawer" type="default">关闭</button>
|
||||||
|
<button @click="login" type="default">登录</button>
|
||||||
<view class="drawer-list">
|
<view class="drawer-list">
|
||||||
<view v-for="(item,index) in 100" :key="index">
|
<view v-for="(item,index) in 100" :key="index">
|
||||||
<text class="message-item">{{item}}</text>
|
<text class="message-item">{{item}}</text>
|
||||||
@@ -17,12 +18,27 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { defineEmits } from 'vue'
|
import { defineEmits } from 'vue'
|
||||||
const emits = defineEmits(['closeDrawer'])
|
const emits = defineEmits(['closeDrawer'])
|
||||||
|
import * as loginMnager from '@/manager/LoginManager'
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
emits('closeDrawer')
|
emits('closeDrawer')
|
||||||
console.log('=============关闭抽屉')
|
console.log('=============关闭抽屉')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const login = () => {
|
||||||
|
loginMnager.loginAuth()
|
||||||
|
.then(res => {
|
||||||
|
console.log('登录成功', res)
|
||||||
|
// 这里可以处理登录成功后的逻辑,比如保存 token 等
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error('登录失败', err)
|
||||||
|
// 这里可以处理登录失败的逻辑
|
||||||
|
})
|
||||||
|
console.log('=============登录')
|
||||||
|
// 这里可以处理登录逻辑,比如调用登录接口等
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|||||||
1
request/api/Index.js
Normal file
1
request/api/Index.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
export * from './LoginApi.js'
|
||||||
9
request/api/LoginApi.js
Normal file
9
request/api/LoginApi.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import request from "../base/request";
|
||||||
|
|
||||||
|
function login(args) {
|
||||||
|
return request.post('/auth/oauth2/token', args, {
|
||||||
|
noToken: true,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
export { login }
|
||||||
56
request/base/request.js
Normal file
56
request/base/request.js
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
import { BASE_URL } from "../../constant/base";
|
||||||
|
|
||||||
|
const defaultConfig = {
|
||||||
|
header: {
|
||||||
|
Authorization: '', // 可在此动态设置 token
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded'
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
function request(url, args = {}, method = 'POST', customConfig = {}) {
|
||||||
|
// 判断 url 是否以 http 开头
|
||||||
|
if (!/^http/.test(url)) {
|
||||||
|
url = BASE_URL + url;
|
||||||
|
}
|
||||||
|
// 动态获取 token
|
||||||
|
const token = uni.getStorageSync('token');
|
||||||
|
let header = {
|
||||||
|
...defaultConfig.header,
|
||||||
|
...customConfig.header
|
||||||
|
};
|
||||||
|
// 判断是否需要 token
|
||||||
|
if (customConfig.noToken) {
|
||||||
|
delete header.Authorization;
|
||||||
|
} else if (token) {
|
||||||
|
header.Authorization = `Basic ${token}`;
|
||||||
|
} else {
|
||||||
|
delete header.Authorization;
|
||||||
|
}
|
||||||
|
const config = {
|
||||||
|
...defaultConfig,
|
||||||
|
...customConfig,
|
||||||
|
header
|
||||||
|
};
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
uni.request({
|
||||||
|
url,
|
||||||
|
data: args,
|
||||||
|
method,
|
||||||
|
...config,
|
||||||
|
success: (res) => resolve(res.data),
|
||||||
|
fail: (err) => reject(err)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 默认 POST
|
||||||
|
request.post = function(url, args = {}) {
|
||||||
|
return request(url, args, 'POST');
|
||||||
|
};
|
||||||
|
|
||||||
|
// 支持 GET
|
||||||
|
request.get = function(url, args = {}) {
|
||||||
|
return request(url, args, 'GET');
|
||||||
|
};
|
||||||
|
|
||||||
|
export default request;
|
||||||
Reference in New Issue
Block a user