@feathersjs/authentication 5.0.0-pre.31 → 5.0.0-pre.33

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/CHANGELOG.md CHANGED
@@ -3,6 +3,16 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)
7
+
8
+ **Note:** Version bump only for package @feathersjs/authentication
9
+
10
+ # [5.0.0-pre.32](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.31...v5.0.0-pre.32) (2022-10-26)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **authentication:** Improve logout and disconnect connection handling ([#2813](https://github.com/feathersjs/feathers/issues/2813)) ([dd77379](https://github.com/feathersjs/feathers/commit/dd77379d8bdcd32d529bef912e672639e4899823))
15
+
6
16
  # [5.0.0-pre.31](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.30...v5.0.0-pre.31) (2022-10-12)
7
17
 
8
18
  ### Features
@@ -1,15 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const omit_1 = __importDefault(require("lodash/omit"));
7
3
  exports.default = (event) => async (context, next) => {
8
4
  await next();
9
5
  const { result, params: { connection } } = context;
10
6
  if (connection) {
11
7
  const service = context.service;
12
- Object.assign(connection, (0, omit_1.default)(result, 'accessToken', 'authentication'));
13
8
  await service.handleConnection(event, connection, result);
14
9
  }
15
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/hooks/connection.ts"],"names":[],"mappings":";;;;;AACA,uDAA8B;AAG9B,kBAAe,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK,EAAE,OAAoB,EAAE,IAAkB,EAAE,EAAE;IAC5F,MAAM,IAAI,EAAE,CAAA;IAEZ,MAAM,EACJ,MAAM,EACN,MAAM,EAAE,EAAE,UAAU,EAAE,EACvB,GAAG,OAAO,CAAA;IAEX,IAAI,UAAU,EAAE;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,OAAwC,CAAA;QAEhE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,IAAA,cAAI,EAAC,MAAM,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAA;QAExE,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;KAC1D;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/hooks/connection.ts"],"names":[],"mappings":";;AAGA,kBAAe,CAAC,KAAsB,EAAE,EAAE,CAAC,KAAK,EAAE,OAAoB,EAAE,IAAkB,EAAE,EAAE;IAC5F,MAAM,IAAI,EAAE,CAAA;IAEZ,MAAM,EACJ,MAAM,EACN,MAAM,EAAE,EAAE,UAAU,EAAE,EACvB,GAAG,OAAO,CAAA;IAEX,IAAI,UAAU,EAAE;QACd,MAAM,OAAO,GAAG,OAAO,CAAC,OAAwC,CAAA;QAEhE,MAAM,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,CAAA;KAC1D;AACH,CAAC,CAAA"}
package/lib/jwt.js CHANGED
@@ -31,18 +31,18 @@ class JWTStrategy extends strategy_1.AuthenticationBaseStrategy {
31
31
  };
32
32
  }
33
33
  async handleConnection(event, connection, authResult) {
34
+ var _a;
34
35
  const isValidLogout = event === 'logout' &&
35
36
  connection.authentication &&
36
37
  authResult &&
37
38
  connection.authentication.accessToken === authResult.accessToken;
38
39
  const { accessToken } = authResult || {};
40
+ const { entity } = this.configuration;
39
41
  if (accessToken && event === 'login') {
40
42
  debug('Adding authentication information to connection');
41
- const { exp } = await this.authentication.verifyAccessToken(accessToken);
43
+ const { exp } = ((_a = authResult === null || authResult === void 0 ? void 0 : authResult.authentication) === null || _a === void 0 ? void 0 : _a.payload) || (await this.authentication.verifyAccessToken(accessToken));
42
44
  // The time (in ms) until the token expires
43
45
  const duration = exp * 1000 - Date.now();
44
- // This may have to be a `logout` event but right now we don't want
45
- // the whole context object lingering around until the timer is gone
46
46
  const timer = long_timeout_1.default.setTimeout(() => this.app.emit('disconnect', connection), duration);
47
47
  debug(`Registering connection expiration timer for ${duration}ms`);
48
48
  long_timeout_1.default.clearTimeout(this.expirationTimers.get(connection));
@@ -52,12 +52,15 @@ class JWTStrategy extends strategy_1.AuthenticationBaseStrategy {
52
52
  strategy: this.name,
53
53
  accessToken
54
54
  };
55
+ connection[entity] = authResult[entity];
55
56
  }
56
57
  else if (event === 'disconnect' || isValidLogout) {
57
58
  debug('Removing authentication information and expiration timer from connection');
58
- const { entity } = this.configuration;
59
- delete connection[entity];
60
- delete connection.authentication;
59
+ await new Promise((resolve) => process.nextTick(() => {
60
+ delete connection[entity];
61
+ delete connection.authentication;
62
+ resolve(connection);
63
+ }));
61
64
  long_timeout_1.default.clearTimeout(this.expirationTimers.get(connection));
62
65
  this.expirationTimers.delete(connection);
63
66
  }
package/lib/jwt.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../src/jwt.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@feathersjs/authentication",
3
3
  "description": "Add Authentication to your FeathersJS app.",
4
- "version": "5.0.0-pre.31",
4
+ "version": "5.0.0-pre.33",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -53,12 +53,12 @@
53
53
  "access": "public"
54
54
  },
55
55
  "dependencies": {
56
- "@feathersjs/commons": "^5.0.0-pre.31",
57
- "@feathersjs/errors": "^5.0.0-pre.31",
58
- "@feathersjs/feathers": "^5.0.0-pre.31",
56
+ "@feathersjs/commons": "^5.0.0-pre.33",
57
+ "@feathersjs/errors": "^5.0.0-pre.33",
58
+ "@feathersjs/feathers": "^5.0.0-pre.33",
59
59
  "@feathersjs/hooks": "^0.7.5",
60
- "@feathersjs/schema": "^5.0.0-pre.31",
61
- "@feathersjs/transport-commons": "^5.0.0-pre.31",
60
+ "@feathersjs/schema": "^5.0.0-pre.33",
61
+ "@feathersjs/transport-commons": "^5.0.0-pre.33",
62
62
  "@types/jsonwebtoken": "^8.5.9",
63
63
  "jsonwebtoken": "^8.5.1",
64
64
  "lodash": "^4.17.21",
@@ -66,15 +66,15 @@
66
66
  "uuid": "^9.0.0"
67
67
  },
68
68
  "devDependencies": {
69
- "@feathersjs/memory": "^5.0.0-pre.31",
70
- "@types/lodash": "^4.14.186",
69
+ "@feathersjs/memory": "^5.0.0-pre.33",
70
+ "@types/lodash": "^4.14.187",
71
71
  "@types/mocha": "^10.0.0",
72
- "@types/node": "^18.8.2",
72
+ "@types/node": "^18.11.9",
73
73
  "@types/uuid": "^8.3.4",
74
- "mocha": "^10.0.0",
74
+ "mocha": "^10.1.0",
75
75
  "shx": "^0.3.4",
76
76
  "ts-node": "^10.9.1",
77
77
  "typescript": "^4.8.4"
78
78
  },
79
- "gitHead": "4500dbeb8cea566678cf88b3313a88efd93a2ed9"
79
+ "gitHead": "89f516bcb1457e23a02c6212e9cd8bacc4d267d4"
80
80
  }
@@ -1,5 +1,4 @@
1
1
  import { HookContext, NextFunction } from '@feathersjs/feathers'
2
- import omit from 'lodash/omit'
3
2
  import { AuthenticationBase, ConnectionEvent } from '../core'
4
3
 
5
4
  export default (event: ConnectionEvent) => async (context: HookContext, next: NextFunction) => {
@@ -13,8 +12,6 @@ export default (event: ConnectionEvent) => async (context: HookContext, next: Ne
13
12
  if (connection) {
14
13
  const service = context.service as unknown as AuthenticationBase
15
14
 
16
- Object.assign(connection, omit(result, 'accessToken', 'authentication'))
17
-
18
15
  await service.handleConnection(event, connection, result)
19
16
  }
20
17
  }
package/src/jwt.ts CHANGED
@@ -42,14 +42,14 @@ export class JWTStrategy extends AuthenticationBaseStrategy {
42
42
  connection.authentication.accessToken === authResult.accessToken
43
43
 
44
44
  const { accessToken } = authResult || {}
45
+ const { entity } = this.configuration
45
46
 
46
47
  if (accessToken && event === 'login') {
47
48
  debug('Adding authentication information to connection')
48
- const { exp } = await this.authentication.verifyAccessToken(accessToken)
49
+ const { exp } =
50
+ authResult?.authentication?.payload || (await this.authentication.verifyAccessToken(accessToken))
49
51
  // The time (in ms) until the token expires
50
52
  const duration = exp * 1000 - Date.now()
51
- // This may have to be a `logout` event but right now we don't want
52
- // the whole context object lingering around until the timer is gone
53
53
  const timer = lt.setTimeout(() => this.app.emit('disconnect', connection), duration)
54
54
 
55
55
  debug(`Registering connection expiration timer for ${duration}ms`)
@@ -61,13 +61,17 @@ export class JWTStrategy extends AuthenticationBaseStrategy {
61
61
  strategy: this.name,
62
62
  accessToken
63
63
  }
64
+ connection[entity] = authResult[entity]
64
65
  } else if (event === 'disconnect' || isValidLogout) {
65
66
  debug('Removing authentication information and expiration timer from connection')
66
67
 
67
- const { entity } = this.configuration
68
-
69
- delete connection[entity]
70
- delete connection.authentication
68
+ await new Promise((resolve) =>
69
+ process.nextTick(() => {
70
+ delete connection[entity]
71
+ delete connection.authentication
72
+ resolve(connection)
73
+ })
74
+ )
71
75
 
72
76
  lt.clearTimeout(this.expirationTimers.get(connection))
73
77
  this.expirationTimers.delete(connection)