@logto/browser 0.1.4 → 0.1.5

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/lib/index.d.ts CHANGED
@@ -5,7 +5,7 @@ export type { IdTokenClaims, UserInfoResponse } from '@logto/js';
5
5
  export * from './errors';
6
6
  export declare type LogtoConfig = {
7
7
  endpoint: string;
8
- clientId: string;
8
+ appId: string;
9
9
  scopes?: string[];
10
10
  resources?: string[];
11
11
  usingPersistStorage?: boolean;
@@ -41,7 +41,6 @@ export default class LogtoClient {
41
41
  protected readonly requester: Requester;
42
42
  protected readonly accessTokenMap: Map<string, AccessToken>;
43
43
  private readonly getAccessTokenPromiseMap;
44
- private _refreshToken;
45
44
  private _idToken;
46
45
  constructor(logtoConfig: LogtoConfig, requester?: <T>(input: RequestInfo, init?: RequestInit | undefined) => Promise<T>);
47
46
  get isAuthenticated(): boolean;
package/lib/index.js CHANGED
@@ -33,9 +33,8 @@ class LogtoClient {
33
33
  this.accessTokenMap = new Map();
34
34
  this.getAccessTokenPromiseMap = new Map();
35
35
  this.logtoConfig = logtoConfig;
36
- this.logtoStorageKey = (0, utils_1.buildLogtoKey)(logtoConfig.clientId);
36
+ this.logtoStorageKey = (0, utils_1.buildLogtoKey)(logtoConfig.appId);
37
37
  this.requester = requester;
38
- this._refreshToken = localStorage.getItem((0, utils_1.buildRefreshTokenKey)(this.logtoStorageKey));
39
38
  this._idToken = localStorage.getItem((0, utils_1.buildIdTokenKey)(this.logtoStorageKey));
40
39
  }
41
40
  get isAuthenticated() {
@@ -64,10 +63,9 @@ class LogtoClient {
64
63
  sessionStorage.setItem(this.logtoStorageKey, jsonItem);
65
64
  }
66
65
  get refreshToken() {
67
- return this._refreshToken;
66
+ return localStorage.getItem((0, utils_1.buildRefreshTokenKey)(this.logtoStorageKey));
68
67
  }
69
68
  set refreshToken(refreshToken) {
70
- this._refreshToken = refreshToken;
71
69
  const refreshTokenKey = (0, utils_1.buildRefreshTokenKey)(this.logtoStorageKey);
72
70
  if (!refreshToken) {
73
71
  localStorage.removeItem(refreshTokenKey);
@@ -134,7 +132,7 @@ class LogtoClient {
134
132
  return (0, js_1.fetchUserInfo)(userinfoEndpoint, accessToken, this.requester);
135
133
  }
136
134
  async signIn(redirectUri) {
137
- const { clientId, resources, scopes: customScopes } = this.logtoConfig;
135
+ const { appId: clientId, resources, scopes: customScopes } = this.logtoConfig;
138
136
  const { authorizationEndpoint } = await this.getOidcConfig();
139
137
  const codeVerifier = (0, js_1.generateCodeVerifier)();
140
138
  const codeChallenge = await (0, js_1.generateCodeChallenge)(codeVerifier);
@@ -168,7 +166,7 @@ class LogtoClient {
168
166
  }
169
167
  const { redirectUri, state, codeVerifier } = signInSession;
170
168
  const code = (0, js_1.verifyAndParseCodeFromCallbackUri)(callbackUri, redirectUri, state);
171
- const { clientId } = logtoConfig;
169
+ const { appId: clientId } = logtoConfig;
172
170
  const { tokenEndpoint } = await this.getOidcConfig();
173
171
  const codeTokenResponse = await (0, js_1.fetchTokenByAuthorizationCode)({
174
172
  clientId,
@@ -179,12 +177,13 @@ class LogtoClient {
179
177
  }, requester);
180
178
  await this.verifyIdToken(codeTokenResponse.idToken);
181
179
  this.saveCodeToken(codeTokenResponse);
180
+ this.signInSession = null;
182
181
  }
183
182
  async signOut(postLogoutRedirectUri) {
184
183
  if (!this.idToken) {
185
184
  throw new errors_1.LogtoClientError('not_authenticated');
186
185
  }
187
- const { clientId } = this.logtoConfig;
186
+ const { appId: clientId } = this.logtoConfig;
188
187
  const { endSessionEndpoint, revocationEndpoint } = await this.getOidcConfig();
189
188
  if (this.refreshToken) {
190
189
  try {
@@ -210,7 +209,7 @@ class LogtoClient {
210
209
  }
211
210
  try {
212
211
  const accessTokenKey = (0, utils_1.buildAccessTokenKey)(resource);
213
- const { clientId } = this.logtoConfig;
212
+ const { appId: clientId } = this.logtoConfig;
214
213
  const { tokenEndpoint } = await this.getOidcConfig();
215
214
  const { accessToken, refreshToken, idToken, scope, expiresIn } = await (0, js_1.fetchTokenByRefreshToken)({ clientId, tokenEndpoint, refreshToken: this.refreshToken, resource }, this.requester);
216
215
  this.accessTokenMap.set(accessTokenKey, {
@@ -239,11 +238,11 @@ class LogtoClient {
239
238
  return (0, jose_1.createRemoteJWKSet)(new URL(jwksUri));
240
239
  }
241
240
  async verifyIdToken(idToken) {
242
- const { clientId } = this.logtoConfig;
241
+ const { appId } = this.logtoConfig;
243
242
  const { issuer } = await this.getOidcConfig();
244
243
  const jwtVerifyGetKey = await this.getJwtVerifyGetKey();
245
244
  try {
246
- await (0, js_1.verifyIdToken)(idToken, clientId, issuer, jwtVerifyGetKey);
245
+ await (0, js_1.verifyIdToken)(idToken, appId, issuer, jwtVerifyGetKey);
247
246
  }
248
247
  catch (error) {
249
248
  throw new errors_1.LogtoClientError('invalid_id_token', error);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@logto/browser",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "main": "./lib/index.js",
5
5
  "exports": "./lib/index.js",
6
6
  "typings": "./lib/index.d.ts",
@@ -21,10 +21,10 @@
21
21
  "lint": "eslint --ext .ts src",
22
22
  "test": "jest",
23
23
  "test:coverage": "jest --silent --coverage",
24
- "prepack": "pnpm test && pnpm build"
24
+ "prepack": "pnpm test"
25
25
  },
26
26
  "dependencies": {
27
- "@logto/js": "^0.1.3",
27
+ "@logto/js": "^0.1.5",
28
28
  "@silverhand/essentials": "^1.1.6",
29
29
  "jose": "^4.5.0",
30
30
  "lodash.get": "^4.4.2",
@@ -33,8 +33,8 @@
33
33
  },
34
34
  "devDependencies": {
35
35
  "@jest/types": "^27.5.1",
36
- "@silverhand/eslint-config": "^0.9.1",
37
- "@silverhand/ts-config": "^0.9.1",
36
+ "@silverhand/eslint-config": "^0.10.0",
37
+ "@silverhand/ts-config": "^0.10.0",
38
38
  "@types/jest": "^27.4.0",
39
39
  "@types/lodash.get": "^4.4.6",
40
40
  "@types/lodash.once": "^4.1.6",
@@ -55,5 +55,5 @@
55
55
  "publishConfig": {
56
56
  "access": "public"
57
57
  },
58
- "gitHead": "a5eed81a3e3db3184a53f04f843db8ac707dd3ad"
58
+ "gitHead": "ed98d55270ae923f95a57fe4f3bc5a5959518c06"
59
59
  }