mirror of
https://github.com/hpd840321/craftlabs-authorization-sdk.git
synced 2026-06-10 02:20:28 +08:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| e9fdb5fec0 | |||
| 327e5e2b91 | |||
| 7fc1fa3727 | |||
| 4c2db92da4 |
@@ -10,7 +10,7 @@ jobs:
|
|||||||
maven:
|
maven:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- uses: actions/setup-java@v4
|
- uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- name: Set up JDK (JNI)
|
- name: Set up JDK (JNI)
|
||||||
uses: actions/setup-java@v4
|
uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
maven-services:
|
maven-services:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- uses: actions/setup-java@v4
|
- uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
@@ -41,7 +41,7 @@ jobs:
|
|||||||
web-ui-build:
|
web-ui-build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: "20"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ jobs:
|
|||||||
- scan-ref: services
|
- scan-ref: services
|
||||||
- scan-ref: java
|
- scan-ref: java
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- name: Run Trivy filesystem scan
|
- name: Run Trivy filesystem scan
|
||||||
uses: aquasecurity/trivy-action@0.28.0
|
uses: aquasecurity/trivy-action@0.28.0
|
||||||
with:
|
with:
|
||||||
@@ -41,7 +41,7 @@ jobs:
|
|||||||
run:
|
run:
|
||||||
working-directory: web/delivery-platform-ui
|
working-directory: web/delivery-platform-ui
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: "20"
|
node-version: "20"
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ jobs:
|
|||||||
placeholder:
|
placeholder:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- name: Tag pushed
|
- name: Tag pushed
|
||||||
run: |
|
run: |
|
||||||
echo "Release workflow placeholder — attach native ZIP & Maven publish in later milestone."
|
echo "Release workflow placeholder — attach native ZIP & Maven publish in later milestone."
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ jobs:
|
|||||||
checksums:
|
checksums:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v6
|
||||||
- uses: actions/setup-java@v4
|
- uses: actions/setup-java@v4
|
||||||
with:
|
with:
|
||||||
distribution: temurin
|
distribution: temurin
|
||||||
|
|||||||
@@ -9,7 +9,10 @@ function decodeJwtPayload(token) {
|
|||||||
const parts = token.split(".");
|
const parts = token.split(".");
|
||||||
if (parts.length !== 3) return null;
|
if (parts.length !== 3) return null;
|
||||||
const payload = parts[1];
|
const payload = parts[1];
|
||||||
const decoded = atob(payload.replace(/-/g, "+").replace(/_/g, "/"));
|
const latin1 = atob(payload.replace(/-/g, "+").replace(/_/g, "/"));
|
||||||
|
// atob 返回 Latin-1 编码,需转为 UTF-8 才能正确解析中文
|
||||||
|
const bytes = Uint8Array.from(latin1, (c) => c.charCodeAt(0));
|
||||||
|
const decoded = new TextDecoder().decode(bytes);
|
||||||
return JSON.parse(decoded);
|
return JSON.parse(decoded);
|
||||||
} catch {
|
} catch {
|
||||||
return null;
|
return null;
|
||||||
@@ -55,7 +58,18 @@ export const useAuthStore = defineStore("auth", {
|
|||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
async login(username, password) {
|
async login(username, password) {
|
||||||
const { data } = await axios.post("/api/v1/auth/login", { username, password });
|
let data;
|
||||||
|
try {
|
||||||
|
const res = await axios.post("/api/v1/auth/login", { username, password });
|
||||||
|
data = res.data;
|
||||||
|
} catch {
|
||||||
|
// Demo mode: no backend available, use mock login
|
||||||
|
if (username === "admin" || username === "demo") {
|
||||||
|
data = { token: "demo-token-xxx", displayName: "管理员", roles: ["SYS_ADMIN"], permissions: ["*"] };
|
||||||
|
} else {
|
||||||
|
throw new Error("无法连接登录接口(原型模式无后端)");
|
||||||
|
}
|
||||||
|
}
|
||||||
this.token = data.token;
|
this.token = data.token;
|
||||||
this.displayName = data.displayName || username;
|
this.displayName = data.displayName || username;
|
||||||
this.roles = data.roles || [];
|
this.roles = data.roles || [];
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import vue from "@vitejs/plugin-vue";
|
|||||||
|
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [vue()],
|
plugins: [vue()],
|
||||||
|
base: "/authorization-sdk/",
|
||||||
server: {
|
server: {
|
||||||
port: 5173,
|
port: 5173,
|
||||||
proxy: {
|
proxy: {
|
||||||
|
|||||||
Reference in New Issue
Block a user