@a-tech.jo/auth-sdk 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -2
- package/dist/index.mjs +36 -1
- package/dist/services/auth.d.ts +10 -0
- package/dist/services/auth.d.ts.map +1 -0
- package/dist/types.d.ts +11 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -127,3 +127,51 @@ rm -rf dist *.tgz && npm run build
|
|
|
127
127
|
|
|
128
128
|
# Publish to npm using your access token
|
|
129
129
|
echo "//registry.npmjs.org/:_authToken=YOUR_NPM_TOKEN" > .npmrc && npm publish --access public ; rm -f .npmrc
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Token Verification (`verifyToken`)
|
|
137
|
+
|
|
138
|
+
Verify any JWT token and retrieve the active user profile using the SDK helper function:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { verifyToken } from "@a-tech/auth-sdk";
|
|
142
|
+
|
|
143
|
+
async function validateSession(authToken: string) {
|
|
144
|
+
// Verifies token and returns session status & user details
|
|
145
|
+
const result = await verifyToken(authToken, "local");
|
|
146
|
+
|
|
147
|
+
if (result.valid) {
|
|
148
|
+
console.log("Authenticated User:", result.user);
|
|
149
|
+
console.log("Session Expires At:", result.expiresAt);
|
|
150
|
+
} else {
|
|
151
|
+
console.error("Invalid Session:", result.error);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Parameters & Options
|
|
158
|
+
|
|
159
|
+
| Parameter | Type | Description |
|
|
160
|
+
| --- | --- | --- |
|
|
161
|
+
| `token` | `string` | *(Required)* The JWT authentication token string to verify. |
|
|
162
|
+
| `environment` | `"local" | "stage" | "production"` | *(Optional)* The target environment. Defaults to `"production"`. |
|
|
163
|
+
|
|
164
|
+
### Return Value (`Promise<VerifyTokenResponse>`)
|
|
165
|
+
|
|
166
|
+
```typescript
|
|
167
|
+
{
|
|
168
|
+
valid: boolean; // True if the token is signature-valid and active
|
|
169
|
+
user?: { // User profile details (if valid)
|
|
170
|
+
id: string | number;
|
|
171
|
+
email: string;
|
|
172
|
+
type?: string;
|
|
173
|
+
};
|
|
174
|
+
expiresAt?: string; // ISO expiration timestamp
|
|
175
|
+
error?: string; // Error message if invalid or expired
|
|
176
|
+
}
|
|
177
|
+
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -29,7 +29,8 @@ __export(index_exports, {
|
|
|
29
29
|
DEFAULT_THEME: () => DEFAULT_THEME,
|
|
30
30
|
SDKAuthContainer: () => SDKAuthContainer,
|
|
31
31
|
getSDKConfig: () => getSDKConfig,
|
|
32
|
-
useAuth: () => useAuth
|
|
32
|
+
useAuth: () => useAuth,
|
|
33
|
+
verifyToken: () => verifyToken
|
|
33
34
|
});
|
|
34
35
|
module.exports = __toCommonJS(index_exports);
|
|
35
36
|
|
|
@@ -752,6 +753,40 @@ var SDKAuthContainer = ({
|
|
|
752
753
|
)
|
|
753
754
|
] });
|
|
754
755
|
};
|
|
756
|
+
|
|
757
|
+
// src/services/auth.ts
|
|
758
|
+
async function verifyToken(token, environment = "production") {
|
|
759
|
+
const baseUrlMap = {
|
|
760
|
+
local: "http://localhost:3000",
|
|
761
|
+
stage: "https://auth.atech-workspace.com",
|
|
762
|
+
production: "https://sso.a-tech.dev"
|
|
763
|
+
// Replace with your production URL
|
|
764
|
+
};
|
|
765
|
+
const baseUrl = baseUrlMap[environment] || baseUrlMap.production;
|
|
766
|
+
try {
|
|
767
|
+
const response = await fetch(`${baseUrl}/api/auth/verify`, {
|
|
768
|
+
method: "POST",
|
|
769
|
+
headers: {
|
|
770
|
+
"Content-Type": "application/json",
|
|
771
|
+
Authorization: `Bearer ${token}`
|
|
772
|
+
},
|
|
773
|
+
body: JSON.stringify({ token })
|
|
774
|
+
});
|
|
775
|
+
const data = await response.json();
|
|
776
|
+
if (!response.ok) {
|
|
777
|
+
return {
|
|
778
|
+
valid: false,
|
|
779
|
+
error: data.error || "Token verification failed."
|
|
780
|
+
};
|
|
781
|
+
}
|
|
782
|
+
return data;
|
|
783
|
+
} catch (error) {
|
|
784
|
+
return {
|
|
785
|
+
valid: false,
|
|
786
|
+
error: error.message || "Network error while verifying token."
|
|
787
|
+
};
|
|
788
|
+
}
|
|
789
|
+
}
|
|
755
790
|
// Annotate the CommonJS export names for ESM import in node:
|
|
756
791
|
0 && (module.exports = {
|
|
757
792
|
AuthClient,
|
|
@@ -763,5 +798,6 @@ var SDKAuthContainer = ({
|
|
|
763
798
|
DEFAULT_THEME,
|
|
764
799
|
SDKAuthContainer,
|
|
765
800
|
getSDKConfig,
|
|
766
|
-
useAuth
|
|
801
|
+
useAuth,
|
|
802
|
+
verifyToken
|
|
767
803
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -717,6 +717,40 @@ var SDKAuthContainer = ({
|
|
|
717
717
|
)
|
|
718
718
|
] });
|
|
719
719
|
};
|
|
720
|
+
|
|
721
|
+
// src/services/auth.ts
|
|
722
|
+
async function verifyToken(token, environment = "production") {
|
|
723
|
+
const baseUrlMap = {
|
|
724
|
+
local: "http://localhost:3000",
|
|
725
|
+
stage: "https://auth.atech-workspace.com",
|
|
726
|
+
production: "https://sso.a-tech.dev"
|
|
727
|
+
// Replace with your production URL
|
|
728
|
+
};
|
|
729
|
+
const baseUrl = baseUrlMap[environment] || baseUrlMap.production;
|
|
730
|
+
try {
|
|
731
|
+
const response = await fetch(`${baseUrl}/api/auth/verify`, {
|
|
732
|
+
method: "POST",
|
|
733
|
+
headers: {
|
|
734
|
+
"Content-Type": "application/json",
|
|
735
|
+
Authorization: `Bearer ${token}`
|
|
736
|
+
},
|
|
737
|
+
body: JSON.stringify({ token })
|
|
738
|
+
});
|
|
739
|
+
const data = await response.json();
|
|
740
|
+
if (!response.ok) {
|
|
741
|
+
return {
|
|
742
|
+
valid: false,
|
|
743
|
+
error: data.error || "Token verification failed."
|
|
744
|
+
};
|
|
745
|
+
}
|
|
746
|
+
return data;
|
|
747
|
+
} catch (error) {
|
|
748
|
+
return {
|
|
749
|
+
valid: false,
|
|
750
|
+
error: error.message || "Network error while verifying token."
|
|
751
|
+
};
|
|
752
|
+
}
|
|
753
|
+
}
|
|
720
754
|
export {
|
|
721
755
|
AuthClient,
|
|
722
756
|
AuthProvider,
|
|
@@ -727,5 +761,6 @@ export {
|
|
|
727
761
|
DEFAULT_THEME,
|
|
728
762
|
SDKAuthContainer,
|
|
729
763
|
getSDKConfig,
|
|
730
|
-
useAuth
|
|
764
|
+
useAuth,
|
|
765
|
+
verifyToken
|
|
731
766
|
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { VerifyTokenResponse } from "../types";
|
|
2
|
+
/**
|
|
3
|
+
* Verifies a JWT token against the A-Tech Auth API.
|
|
4
|
+
*
|
|
5
|
+
* @param token - The JWT string to verify.
|
|
6
|
+
* @param environment - Optional environment override ('local' | 'stage' | 'production').
|
|
7
|
+
* @returns Promise containing verification status and user details.
|
|
8
|
+
*/
|
|
9
|
+
export declare function verifyToken(token: string, environment?: "local" | "stage" | "production"): Promise<VerifyTokenResponse>;
|
|
10
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/services/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC7B,KAAK,EAAE,MAAM,EACb,WAAW,GAAE,OAAO,GAAG,OAAO,GAAG,YAA2B,GAC7D,OAAO,CAAC,mBAAmB,CAAC,CAmC9B"}
|
package/dist/types.d.ts
CHANGED
|
@@ -99,4 +99,15 @@ export interface SDKOptions {
|
|
|
99
99
|
onSuccess?: (data: any) => void;
|
|
100
100
|
onError?: (error: Error) => void;
|
|
101
101
|
}
|
|
102
|
+
export interface VerifyTokenResponse {
|
|
103
|
+
valid: boolean;
|
|
104
|
+
user?: {
|
|
105
|
+
id: string | number;
|
|
106
|
+
email: string;
|
|
107
|
+
type?: string;
|
|
108
|
+
[key: string]: any;
|
|
109
|
+
};
|
|
110
|
+
expiresAt?: string;
|
|
111
|
+
error?: string;
|
|
112
|
+
}
|
|
102
113
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC;IAE9B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAE3D;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAEpC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAEnC;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AAGpC,MAAM,WAAW,YAAY;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IACxB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACpC,WAAW,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACpC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|