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>
|
||||
|
||||
<button @click="closeDrawer" type="default">关闭</button>
|
||||
<button @click="login" type="default">登录</button>
|
||||
<view class="drawer-list">
|
||||
<view v-for="(item,index) in 100" :key="index">
|
||||
<text class="message-item">{{item}}</text>
|
||||
@@ -17,12 +18,27 @@
|
||||
<script setup>
|
||||
import { defineEmits } from 'vue'
|
||||
const emits = defineEmits(['closeDrawer'])
|
||||
import * as loginMnager from '@/manager/LoginManager'
|
||||
|
||||
const closeDrawer = () => {
|
||||
emits('closeDrawer')
|
||||
console.log('=============关闭抽屉')
|
||||
}
|
||||
|
||||
const login = () => {
|
||||
loginMnager.loginAuth()
|
||||
.then(res => {
|
||||
console.log('登录成功', res)
|
||||
// 这里可以处理登录成功后的逻辑,比如保存 token 等
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('登录失败', err)
|
||||
// 这里可以处理登录失败的逻辑
|
||||
})
|
||||
console.log('=============登录')
|
||||
// 这里可以处理登录逻辑,比如调用登录接口等
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<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