@autonomous-ai/auth-sdk 1.0.7
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 +300 -0
- package/dist/client.d.ts +60 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +224 -0
- package/dist/client.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/pkce.d.ts +34 -0
- package/dist/pkce.d.ts.map +1 -0
- package/dist/pkce.js +85 -0
- package/dist/pkce.js.map +1 -0
- package/dist/react/AuthProvider.d.ts +25 -0
- package/dist/react/AuthProvider.d.ts.map +1 -0
- package/dist/react/AuthProvider.js +111 -0
- package/dist/react/AuthProvider.js.map +1 -0
- package/dist/react/index.d.ts +6 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +5 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/useAuth.d.ts +21 -0
- package/dist/react/useAuth.d.ts.map +1 -0
- package/dist/react/useAuth.js +23 -0
- package/dist/react/useAuth.js.map +1 -0
- package/dist/react/useCallback.d.ts +31 -0
- package/dist/react/useCallback.d.ts.map +1 -0
- package/dist/react/useCallback.js +78 -0
- package/dist/react/useCallback.js.map +1 -0
- package/dist/react/useUser.d.ts +22 -0
- package/dist/react/useUser.d.ts.map +1 -0
- package/dist/react/useUser.js +25 -0
- package/dist/react/useUser.js.map +1 -0
- package/dist/storage.d.ts +49 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +139 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +157 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +62 -0
package/dist/storage.js
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
const ACCESS_TOKEN_KEY = 'auth_sdk_access_token';
|
|
2
|
+
const REFRESH_TOKEN_KEY = 'auth_sdk_refresh_token';
|
|
3
|
+
const TOKEN_EXPIRY_KEY = 'auth_sdk_token_expiry';
|
|
4
|
+
/**
|
|
5
|
+
* Default localStorage-based token storage
|
|
6
|
+
*/
|
|
7
|
+
export const defaultStorage = {
|
|
8
|
+
getItem: (key) => localStorage.getItem(key),
|
|
9
|
+
setItem: (key, value) => localStorage.setItem(key, value),
|
|
10
|
+
removeItem: (key) => localStorage.removeItem(key),
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Token manager for storing and retrieving tokens
|
|
14
|
+
*/
|
|
15
|
+
export class TokenManager {
|
|
16
|
+
constructor(storage = defaultStorage) {
|
|
17
|
+
this.storage = storage;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Save tokens from OAuth2 response
|
|
21
|
+
*/
|
|
22
|
+
setTokens(response) {
|
|
23
|
+
this.storage.setItem(ACCESS_TOKEN_KEY, response.access_token);
|
|
24
|
+
if (response.refresh_token) {
|
|
25
|
+
this.storage.setItem(REFRESH_TOKEN_KEY, response.refresh_token);
|
|
26
|
+
}
|
|
27
|
+
if (response.expires_at) {
|
|
28
|
+
this.storage.setItem(TOKEN_EXPIRY_KEY, response.expires_at.toString());
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Get access token
|
|
33
|
+
*/
|
|
34
|
+
getAccessToken() {
|
|
35
|
+
return this.storage.getItem(ACCESS_TOKEN_KEY);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get refresh token
|
|
39
|
+
*/
|
|
40
|
+
getRefreshToken() {
|
|
41
|
+
return this.storage.getItem(REFRESH_TOKEN_KEY);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get token expiry timestamp (in milliseconds)
|
|
45
|
+
*/
|
|
46
|
+
getTokenExpiry() {
|
|
47
|
+
const expiry = this.storage.getItem(TOKEN_EXPIRY_KEY);
|
|
48
|
+
if (!expiry)
|
|
49
|
+
return null;
|
|
50
|
+
const expiryNum = parseInt(expiry, 10);
|
|
51
|
+
// Detect if stored in seconds (< year 2100 in seconds) vs milliseconds
|
|
52
|
+
// Timestamps before ~2001 in ms would be < 10^12, seconds are ~10^9
|
|
53
|
+
if (expiryNum < 10000000000) {
|
|
54
|
+
// It's in seconds, convert to milliseconds
|
|
55
|
+
return expiryNum * 1000;
|
|
56
|
+
}
|
|
57
|
+
return expiryNum;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if access token is expired or about to expire (within 60 seconds)
|
|
61
|
+
*/
|
|
62
|
+
isTokenExpired(bufferSeconds = 60) {
|
|
63
|
+
// First check stored expiry
|
|
64
|
+
const expiry = this.getTokenExpiry();
|
|
65
|
+
if (expiry) {
|
|
66
|
+
return Date.now() >= expiry - bufferSeconds * 1000;
|
|
67
|
+
}
|
|
68
|
+
// Fallback: check JWT exp claim
|
|
69
|
+
const token = this.getAccessToken();
|
|
70
|
+
if (!token)
|
|
71
|
+
return true;
|
|
72
|
+
const payload = this.decodeToken(token);
|
|
73
|
+
if (!payload?.exp)
|
|
74
|
+
return true;
|
|
75
|
+
// JWT exp is in seconds, convert to milliseconds
|
|
76
|
+
return Date.now() >= payload.exp * 1000 - bufferSeconds * 1000;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if user is authenticated (has valid token)
|
|
80
|
+
*/
|
|
81
|
+
isAuthenticated() {
|
|
82
|
+
const token = this.getAccessToken();
|
|
83
|
+
if (!token)
|
|
84
|
+
return false;
|
|
85
|
+
// Check if token is expired
|
|
86
|
+
return !this.isTokenExpired(0);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Clear all tokens
|
|
90
|
+
*/
|
|
91
|
+
clearTokens() {
|
|
92
|
+
this.storage.removeItem(ACCESS_TOKEN_KEY);
|
|
93
|
+
this.storage.removeItem(REFRESH_TOKEN_KEY);
|
|
94
|
+
this.storage.removeItem(TOKEN_EXPIRY_KEY);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Decode JWT payload (without verification)
|
|
98
|
+
*/
|
|
99
|
+
decodeToken(token) {
|
|
100
|
+
try {
|
|
101
|
+
const parts = token.split('.');
|
|
102
|
+
if (parts.length !== 3)
|
|
103
|
+
return null;
|
|
104
|
+
const payload = parts[1];
|
|
105
|
+
const decoded = atob(payload.replace(/-/g, '+').replace(/_/g, '/'));
|
|
106
|
+
return JSON.parse(decoded);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get user info from current access token
|
|
114
|
+
*/
|
|
115
|
+
getUser() {
|
|
116
|
+
const token = this.getAccessToken();
|
|
117
|
+
if (!token)
|
|
118
|
+
return null;
|
|
119
|
+
const payload = this.decodeToken(token);
|
|
120
|
+
if (!payload)
|
|
121
|
+
return null;
|
|
122
|
+
return {
|
|
123
|
+
id: payload.user_id || payload.sub || '',
|
|
124
|
+
email: payload.user_email,
|
|
125
|
+
fullName: payload.ext_info?.full_name,
|
|
126
|
+
code: payload.ext_info?.code,
|
|
127
|
+
roles: payload.ext_info?.roles,
|
|
128
|
+
scope: payload.ext_info?.scope,
|
|
129
|
+
companyDomain: payload.ext_info?.company_domain,
|
|
130
|
+
companyDomainType: payload.ext_info?.company_domain_type,
|
|
131
|
+
isEppUser: payload.ext_info?.is_epp_user,
|
|
132
|
+
vendorId: payload.ext_info?.vendor_id,
|
|
133
|
+
vendorCode: payload.ext_info?.vendor_code,
|
|
134
|
+
vendorName: payload.ext_info?.vendor_name,
|
|
135
|
+
referralCode: payload.ext_info?.referral_code,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration for AuthClient
|
|
3
|
+
*/
|
|
4
|
+
export interface AuthConfig {
|
|
5
|
+
/** SSO server URL (e.g., https://sso.example.com) */
|
|
6
|
+
ssoUrl: string;
|
|
7
|
+
/** OAuth2 client ID */
|
|
8
|
+
clientId: string;
|
|
9
|
+
/** OAuth2 redirect URI after login */
|
|
10
|
+
redirectUri: string;
|
|
11
|
+
/** OAuth2 scopes (space-separated) */
|
|
12
|
+
scope?: string;
|
|
13
|
+
/** Custom storage implementation (defaults to localStorage) */
|
|
14
|
+
storage?: TokenStorage;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Token storage interface for custom implementations
|
|
18
|
+
*/
|
|
19
|
+
export interface TokenStorage {
|
|
20
|
+
getItem(key: string): string | null;
|
|
21
|
+
setItem(key: string, value: string): void;
|
|
22
|
+
removeItem(key: string): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Options for authorize flow
|
|
26
|
+
*/
|
|
27
|
+
export interface AuthorizeOptions {
|
|
28
|
+
/** Force account selection screen */
|
|
29
|
+
prompt?: 'select_account' | 'none' | 'login';
|
|
30
|
+
/** Pre-fill login hint (email) */
|
|
31
|
+
loginHint?: string;
|
|
32
|
+
/** URL to redirect to after successful login callback */
|
|
33
|
+
nextUrl?: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* OAuth2 token response from server
|
|
37
|
+
*/
|
|
38
|
+
export interface TokenResponse {
|
|
39
|
+
access_token: string;
|
|
40
|
+
token_type: string;
|
|
41
|
+
expires_at: number;
|
|
42
|
+
refresh_token?: string;
|
|
43
|
+
scope?: string;
|
|
44
|
+
id_token?: string;
|
|
45
|
+
/** Extra fields from auth-service */
|
|
46
|
+
first_time?: boolean;
|
|
47
|
+
cart_id?: string;
|
|
48
|
+
epp_user?: boolean;
|
|
49
|
+
company_domain?: string;
|
|
50
|
+
company_name?: string;
|
|
51
|
+
company_domain_type?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* OAuth2 error response
|
|
55
|
+
*/
|
|
56
|
+
export interface OAuth2Error {
|
|
57
|
+
error: string;
|
|
58
|
+
error_description?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* API Response wrapper used by auth-service
|
|
62
|
+
*/
|
|
63
|
+
export interface ApiResponse<T> {
|
|
64
|
+
success: boolean;
|
|
65
|
+
data?: T;
|
|
66
|
+
error?: {
|
|
67
|
+
code: string;
|
|
68
|
+
message: string;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Decoded JWT payload
|
|
73
|
+
*/
|
|
74
|
+
export interface JwtPayload {
|
|
75
|
+
/** Subject (user ID) */
|
|
76
|
+
sub?: string;
|
|
77
|
+
/** User ID */
|
|
78
|
+
user_id: string;
|
|
79
|
+
/** User email */
|
|
80
|
+
user_email: string;
|
|
81
|
+
/** Issued at timestamp */
|
|
82
|
+
iat: number;
|
|
83
|
+
/** Expiration timestamp */
|
|
84
|
+
exp: number;
|
|
85
|
+
/** Extended info */
|
|
86
|
+
ext_info?: JwtExtInfo;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* JWT extended information
|
|
90
|
+
*/
|
|
91
|
+
export interface JwtExtInfo {
|
|
92
|
+
code?: string;
|
|
93
|
+
referral_code?: string;
|
|
94
|
+
full_name?: string;
|
|
95
|
+
roles?: string[];
|
|
96
|
+
vendor_id?: string;
|
|
97
|
+
vendor_code?: string;
|
|
98
|
+
vendor_name?: string;
|
|
99
|
+
oauth2?: boolean;
|
|
100
|
+
scope?: string;
|
|
101
|
+
company_domain?: string;
|
|
102
|
+
company_domain_type?: string;
|
|
103
|
+
is_epp_user?: boolean;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Parsed user info from JWT
|
|
107
|
+
*/
|
|
108
|
+
export interface User {
|
|
109
|
+
id: string;
|
|
110
|
+
email: string;
|
|
111
|
+
fullName?: string;
|
|
112
|
+
code?: string;
|
|
113
|
+
roles?: string[];
|
|
114
|
+
scope?: string;
|
|
115
|
+
companyDomain?: string;
|
|
116
|
+
companyDomainType?: string;
|
|
117
|
+
isEppUser?: boolean;
|
|
118
|
+
vendorId?: string;
|
|
119
|
+
vendorCode?: string;
|
|
120
|
+
vendorName?: string;
|
|
121
|
+
referralCode?: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Auth state for React context
|
|
125
|
+
*/
|
|
126
|
+
export interface AuthState {
|
|
127
|
+
isAuthenticated: boolean;
|
|
128
|
+
isLoading: boolean;
|
|
129
|
+
user: User | null;
|
|
130
|
+
error: Error | null;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Auth context value
|
|
134
|
+
*/
|
|
135
|
+
export interface AuthContextValue extends AuthState {
|
|
136
|
+
/** Start OAuth2 login flow */
|
|
137
|
+
login: (options?: AuthorizeOptions) => Promise<void>;
|
|
138
|
+
/** Logout and clear tokens */
|
|
139
|
+
logout: (redirectUri?: string) => void;
|
|
140
|
+
/** Get current access token */
|
|
141
|
+
getAccessToken: () => string | null;
|
|
142
|
+
/** Refresh access token */
|
|
143
|
+
refreshToken: () => Promise<TokenResponse>;
|
|
144
|
+
/** Re-read auth state from storage (call after callback completes) */
|
|
145
|
+
refreshAuthState: () => void;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Callback result from OAuth2 callback handling
|
|
149
|
+
*/
|
|
150
|
+
export interface CallbackResult {
|
|
151
|
+
success: boolean;
|
|
152
|
+
tokens?: TokenResponse;
|
|
153
|
+
error?: string;
|
|
154
|
+
/** URL to redirect to after successful callback */
|
|
155
|
+
nextUrl?: string;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,WAAW,UAAU,CAAC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@autonomous-ai/auth-sdk",
|
|
3
|
+
"version": "1.0.7",
|
|
4
|
+
"description": "Client SDK for auth-service SSO flow with OAuth2 PKCE",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/index.js",
|
|
12
|
+
"types": "./dist/index.d.ts"
|
|
13
|
+
},
|
|
14
|
+
"./react": {
|
|
15
|
+
"import": "./dist/react/index.js",
|
|
16
|
+
"types": "./dist/react/index.d.ts"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"dev": "tsc --watch",
|
|
25
|
+
"clean": "rm -rf dist",
|
|
26
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"react": ">=18.0.0"
|
|
30
|
+
},
|
|
31
|
+
"peerDependenciesMeta": {
|
|
32
|
+
"react": {
|
|
33
|
+
"optional": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/react": "^19.0.0",
|
|
38
|
+
"react": "^19.0.0",
|
|
39
|
+
"typescript": "^5.0.0"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"auth",
|
|
43
|
+
"sso",
|
|
44
|
+
"oauth2",
|
|
45
|
+
"pkce",
|
|
46
|
+
"react",
|
|
47
|
+
"authentication"
|
|
48
|
+
],
|
|
49
|
+
"license": "MIT",
|
|
50
|
+
"repository": {
|
|
51
|
+
"type": "git",
|
|
52
|
+
"url": "https://github.com/autonomousdotai/auth-sdk.git"
|
|
53
|
+
},
|
|
54
|
+
"homepage": "https://github.com/autonomousdotai/auth-sdk#readme",
|
|
55
|
+
"bugs": {
|
|
56
|
+
"url": "https://github.com/autonomousdotai/auth-sdk/issues"
|
|
57
|
+
},
|
|
58
|
+
"author": "Autonomous",
|
|
59
|
+
"publishConfig": {
|
|
60
|
+
"access": "public"
|
|
61
|
+
}
|
|
62
|
+
}
|