From 23ec18a8b123096a7e952ae8ade8d6d52bc9a78a Mon Sep 17 00:00:00 2001 From: weiwei Date: Fri, 25 Apr 2025 10:38:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - pnpm-lock.yaml | 11 -------- src/pages/tabbar/my.vue | 6 ++--- src/pages/test/login.vue | 48 +++++++++++++++++++++++++++-------- src/sheep/api/user.ts | 4 +-- src/sheep/utils/encryption.ts | 26 ++++++++++++------- src/sheep/utils/request.ts | 4 +-- 7 files changed, 62 insertions(+), 38 deletions(-) diff --git a/package.json b/package.json index a8711ed..fa4c54b 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,6 @@ "luch-request": "^3.1.1", "pinia": "^2.2.6", "qrcode": "^1.5.4", - "qs": "^6.13.1", "radash": "^12.1.0", "vue": "^3.3.11", "vue-i18n": "^9.1.9", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 416f29c..f6b245c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -80,9 +80,6 @@ importers: qrcode: specifier: ^1.5.4 version: 1.5.4 - qs: - specifier: ^6.13.1 - version: 6.14.0 radash: specifier: ^12.1.0 version: 12.1.0 @@ -3329,10 +3326,6 @@ packages: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} - qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} - engines: {node: '>=0.6'} - querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} @@ -8345,10 +8338,6 @@ snapshots: dependencies: side-channel: 1.1.0 - qs@6.14.0: - dependencies: - side-channel: 1.1.0 - querystringify@2.2.0: {} queue-microtask@1.2.3: {} diff --git a/src/pages/tabbar/my.vue b/src/pages/tabbar/my.vue index 24cc345..f96352e 100644 --- a/src/pages/tabbar/my.vue +++ b/src/pages/tabbar/my.vue @@ -3,7 +3,7 @@ - {{ state.userInfo?.sysUser?.name }} + {{ state.userInfo.nickName }} - ID {{ state.userInfo?.sysUser?.userId }} + ID {{ state.userInfo?.user_id }} 请先登录 diff --git a/src/pages/test/login.vue b/src/pages/test/login.vue index 466435e..8f0eb2c 100644 --- a/src/pages/test/login.vue +++ b/src/pages/test/login.vue @@ -28,6 +28,7 @@ import { ref, reactive } from "vue" import { constant, router } from "@@/index" import { userApi } from "@@/api" import request from "@/sheep/utils/request" +import { encryptionBase64 } from "@/sheep/utils/encryption" let applyForm = reactive({ username: "", @@ -83,9 +84,34 @@ const getUserInfo = () => { }) } +const basicAuth = "Basic " + encryptionBase64(import.meta.env.VITE_OAUTH2_APP_CLIENT) + +const mnpLogin = (code: string) => { + const form = { + mobile: `APP-MINI@${code}`, + code: code, + grant_type: "mobile", + scope: "server", + } + + return request({ + url: "/auth/oauth2/token", + method: "POST", + params: form, + header: { + Authorization: basicAuth, //"mini:mini" + "content-type": "application/x-www-form-urlencoded", + }, + custom: { + showLoading: false, + withToken: false, + }, + }) +} + // 登录 const login = async () => { - const result = await uni.login().catch((error) => error) + const result = await uni.login({ provider: "weixin" }).catch((error) => error) if (result.errMsg === "login:ok") { const params = { mobile: "MINI@" + result.code, @@ -94,15 +120,17 @@ const login = async () => { console.log("code", result.code) - const res: any = await request({ - url: "/auth/oauth2/token?grant_type=mobile", - method: "post", - data: params, - header: { - Authorization: "Basic bWluaTptaW5p", - "Content-Type": "application/x-www-form-urlencoded", - }, - }) + const res: any = await mnpLogin(result.code) + + // const res: any = await request({ + // url: "/auth/oauth2/token?grant_type=mobile", + // method: "post", + // data: params, + // header: { + // Authorization: "Basic bWluaTptaW5p", + // "Content-Type": "application/x-www-form-urlencoded", + // }, + // }) console.log("res", res) diff --git a/src/sheep/api/user.ts b/src/sheep/api/user.ts index 31c8602..3fee9c4 100644 --- a/src/sheep/api/user.ts +++ b/src/sheep/api/user.ts @@ -1,8 +1,8 @@ import request from "@/sheep/utils/request" -import { encryption } from "@/sheep/utils/encryption" +import { encryption, encryptionBase64 } from "@/sheep/utils/encryption" // 将 Basic Auth 字符串提取为常量 -const BASIC_AUTH = "Basic " + window.btoa(import.meta.env.VITE_OAUTH2_APP_CLIENT) +const BASIC_AUTH = "Basic " + encryptionBase64(import.meta.env.VITE_OAUTH2_APP_CLIENT) // 定义接口类型 interface LoginParams { diff --git a/src/sheep/utils/encryption.ts b/src/sheep/utils/encryption.ts index 05d0a57..ca8258f 100644 --- a/src/sheep/utils/encryption.ts +++ b/src/sheep/utils/encryption.ts @@ -1,15 +1,23 @@ -import * as CryptoJS from "crypto-js"; +import * as CryptoJS from "crypto-js" /** *加密处理 */ export function encryption(src: string, keyWord: string) { - const key = CryptoJS.enc.Utf8.parse(keyWord); - // 加密 - var encrypted = CryptoJS.AES.encrypt(src, key, { - iv: key, - mode: CryptoJS.mode.CFB, - padding: CryptoJS.pad.NoPadding, - }); - return encrypted.toString(); + const key = CryptoJS.enc.Utf8.parse(keyWord) + // 加密 + var encrypted = CryptoJS.AES.encrypt(src, key, { + iv: key, + mode: CryptoJS.mode.CFB, + padding: CryptoJS.pad.NoPadding, + }) + return encrypted.toString() +} + +/** + *加密处理 + */ +export function encryptionBase64(rawStr: string) { + let wordArray = CryptoJS.enc.Utf8.parse(rawStr) + return CryptoJS.enc.Base64.stringify(wordArray) } diff --git a/src/sheep/utils/request.ts b/src/sheep/utils/request.ts index c547cef..419a199 100644 --- a/src/sheep/utils/request.ts +++ b/src/sheep/utils/request.ts @@ -77,8 +77,8 @@ function handleSuccessMessage(response: any) { // 创建请求实例 const http = new Request({ - baseURL: import.meta.env.VITE_API_URL, - // baseURL: import.meta.env.VITE_APP_PROD_SERVICE, + // baseURL: import.meta.env.VITE_API_URL, + baseURL: import.meta.env.VITE_APP_PROD_SERVICE, timeout: 15000, method: "GET", header: {