@feathersjs/authentication-oauth 5.0.0-pre.22 → 5.0.0-pre.23

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,14 @@
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.23](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.22...v5.0.0-pre.23) (2022-06-06)
7
+
8
+ **Note:** Version bump only for package @feathersjs/authentication-oauth
9
+
10
+
11
+
12
+
13
+
6
14
  # [5.0.0-pre.22](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.21...v5.0.0-pre.22) (2022-05-24)
7
15
 
8
16
  **Note:** Version bump only for package @feathersjs/authentication-oauth
package/lib/express.js CHANGED
@@ -19,11 +19,12 @@ exports.default = (options) => {
19
19
  return;
20
20
  }
21
21
  const { prefix } = config.defaults;
22
- const expressSession = options.expressSession || (0, express_session_1.default)({
23
- secret: Math.random().toString(36).substring(7),
24
- saveUninitialized: true,
25
- resave: true
26
- });
22
+ const expressSession = options.expressSession ||
23
+ (0, express_session_1.default)({
24
+ secret: Math.random().toString(36).substring(7),
25
+ saveUninitialized: true,
26
+ resave: true
27
+ });
27
28
  const grantApp = grantInstance(config);
28
29
  const authApp = (0, express_1.original)();
29
30
  authApp.use(expressSession);
@@ -36,7 +37,7 @@ exports.default = (options) => {
36
37
  req.session.redirect = redirect;
37
38
  req.session.query = query;
38
39
  req.session.headers = req.headers;
39
- if (typeof (req.session.save) === 'function') {
40
+ if (typeof req.session.save === 'function') {
40
41
  req.session.save((err) => {
41
42
  if (err) {
42
43
  next(`Error storing session: ${err}`);
@@ -58,10 +59,12 @@ exports.default = (options) => {
58
59
  const params = {
59
60
  ...req.feathers,
60
61
  authStrategies: [name],
61
- authentication: accessToken ? {
62
- strategy: linkStrategy,
63
- accessToken
64
- } : null,
62
+ authentication: accessToken
63
+ ? {
64
+ strategy: linkStrategy,
65
+ accessToken
66
+ }
67
+ : null,
65
68
  query,
66
69
  redirect,
67
70
  headers
@@ -85,15 +88,14 @@ exports.default = (options) => {
85
88
  }
86
89
  };
87
90
  try {
88
- const payload = config.defaults.transport === 'session' ?
89
- grant.response : req.query;
91
+ const payload = config.defaults.transport === 'session' ? grant.response : req.query;
90
92
  const authentication = {
91
93
  strategy: name,
92
94
  ...payload
93
95
  };
94
96
  await new Promise((resolve, reject) => {
95
97
  if (req.session.destroy) {
96
- req.session.destroy((err) => err ? reject(err) : resolve());
98
+ req.session.destroy((err) => (err ? reject(err) : resolve()));
97
99
  }
98
100
  else {
99
101
  req.session = null;
@@ -1 +1 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../src/express.ts"],"names":[],"mappings":"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"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/strategy.js CHANGED
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.OAuthStrategy = void 0;
7
7
  /* eslint-disable @typescript-eslint/no-unused-vars */
8
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
8
9
  // @ts-ignore
9
10
  const querystring_1 = __importDefault(require("querystring"));
10
11
  const authentication_1 = require("@feathersjs/authentication");
@@ -45,8 +46,7 @@ class OAuthStrategy extends authentication_1.AuthenticationBaseStrategy {
45
46
  if (authentication && authentication.strategy) {
46
47
  debug('getCurrentEntity with authentication', authentication);
47
48
  const { strategy } = authentication;
48
- const authResult = await this.authentication
49
- .authenticate(authentication, params, strategy);
49
+ const authResult = await this.authentication.authenticate(authentication, params, strategy);
50
50
  return authResult[entity];
51
51
  }
52
52
  return null;
@@ -56,7 +56,7 @@ class OAuthStrategy extends authentication_1.AuthenticationBaseStrategy {
56
56
  const { redirect, origins } = this.authentication.configuration.oauth;
57
57
  if (Array.isArray(origins)) {
58
58
  const referer = ((_a = params === null || params === void 0 ? void 0 : params.headers) === null || _a === void 0 ? void 0 : _a.referer) || '';
59
- const allowedOrigin = origins.find(current => referer.toLowerCase().startsWith(current.toLowerCase()));
59
+ const allowedOrigin = origins.find((current) => referer.toLowerCase().startsWith(current.toLowerCase()));
60
60
  if (!allowedOrigin) {
61
61
  throw new errors_1.NotAuthenticated(`Referer "${referer || '[header not available]'}" not allowed.`);
62
62
  }
@@ -71,14 +71,15 @@ class OAuthStrategy extends authentication_1.AuthenticationBaseStrategy {
71
71
  return null;
72
72
  }
73
73
  const redirectUrl = `${redirect}${queryRedirect}`;
74
- const separator = redirect.endsWith('?') ? '' :
75
- (redirect.indexOf('#') !== -1 ? '?' : '#');
74
+ const separator = redirect.endsWith('?') ? '' : redirect.indexOf('#') !== -1 ? '?' : '#';
76
75
  const authResult = data;
77
- const query = authResult.accessToken ? {
78
- access_token: authResult.accessToken
79
- } : {
80
- error: data.message || 'OAuth Authentication not successful'
81
- };
76
+ const query = authResult.accessToken
77
+ ? {
78
+ access_token: authResult.accessToken
79
+ }
80
+ : {
81
+ error: data.message || 'OAuth Authentication not successful'
82
+ };
82
83
  return `${redirectUrl}${separator}${querystring_1.default.stringify(query)}`;
83
84
  }
84
85
  async findEntity(profile, params) {
@@ -121,10 +122,10 @@ class OAuthStrategy extends authentication_1.AuthenticationBaseStrategy {
121
122
  const entity = this.configuration.entity;
122
123
  const { provider, ...params } = originalParams;
123
124
  const profile = await this.getProfile(authentication, params);
124
- const existingEntity = await this.findEntity(profile, params)
125
- || await this.getCurrentEntity(params);
125
+ const existingEntity = (await this.findEntity(profile, params)) || (await this.getCurrentEntity(params));
126
126
  debug('authenticate with (existing) entity', existingEntity);
127
- const authEntity = !existingEntity ? await this.createEntity(profile, params)
127
+ const authEntity = !existingEntity
128
+ ? await this.createEntity(profile, params)
128
129
  : await this.updateEntity(existingEntity, profile, params);
129
130
  return {
130
131
  authentication: { strategy: this.name },
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../src/strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../src/strategy.ts"],"names":[],"mappings":"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"}
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AASO,MAAM,kBAAkB,GAAG,CAAC,IAAiB,EAAE,KAAmC,EAAE,EAAE;IAC3F,MAAM,QAAQ,GAAuB;QACnC,YAAY,EAAE,KAAK;QACnB,GAAG,KAAK;KACT,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAPW,QAAA,kBAAkB,sBAO7B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;AASO,MAAM,kBAAkB,GAAG,CAAC,IAAiB,EAAE,KAAmC,EAAE,EAAE;IAC3F,MAAM,QAAQ,GAAuB;QACnC,YAAY,EAAE,KAAK;QACnB,GAAG,KAAK;KACT,CAAA;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAPY,QAAA,kBAAkB,sBAO9B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@feathersjs/authentication-oauth",
3
3
  "description": "oAuth 1 and 2 authentication for Feathers. Powered by Grant.",
4
- "version": "5.0.0-pre.22",
4
+ "version": "5.0.0-pre.23",
5
5
  "homepage": "https://feathersjs.com",
6
6
  "main": "lib/",
7
7
  "types": "lib/",
@@ -53,27 +53,27 @@
53
53
  "access": "public"
54
54
  },
55
55
  "dependencies": {
56
- "@feathersjs/authentication": "^5.0.0-pre.22",
57
- "@feathersjs/commons": "^5.0.0-pre.22",
58
- "@feathersjs/errors": "^5.0.0-pre.22",
59
- "@feathersjs/express": "^5.0.0-pre.22",
60
- "@feathersjs/feathers": "^5.0.0-pre.22",
61
- "express-session": "^1.17.2",
56
+ "@feathersjs/authentication": "^5.0.0-pre.23",
57
+ "@feathersjs/commons": "^5.0.0-pre.23",
58
+ "@feathersjs/errors": "^5.0.0-pre.23",
59
+ "@feathersjs/express": "^5.0.0-pre.23",
60
+ "@feathersjs/feathers": "^5.0.0-pre.23",
61
+ "express-session": "^1.17.3",
62
62
  "grant": "^5.4.21",
63
63
  "lodash": "^4.17.21"
64
64
  },
65
65
  "devDependencies": {
66
- "@feathersjs/memory": "^5.0.0-pre.22",
66
+ "@feathersjs/memory": "^5.0.0-pre.23",
67
67
  "@types/express": "^4.17.13",
68
68
  "@types/express-session": "^1.17.4",
69
69
  "@types/lodash": "^4.14.182",
70
70
  "@types/mocha": "^9.1.1",
71
- "@types/node": "^17.0.31",
71
+ "@types/node": "^17.0.40",
72
72
  "axios": "^0.27.2",
73
73
  "mocha": "^10.0.0",
74
74
  "shx": "^0.3.4",
75
- "ts-node": "^10.7.0",
76
- "typescript": "^4.6.4"
75
+ "ts-node": "^10.8.1",
76
+ "typescript": "^4.7.3"
77
77
  },
78
- "gitHead": "e452e02063e6d8943a9cae2315ab585bc4f82fb6"
78
+ "gitHead": "a60910bd730b88053ca6648337095f1ca1e3b39f"
79
79
  }
package/src/express.ts CHANGED
@@ -1,142 +1,140 @@
1
- import grant from 'grant';
2
- import session from 'express-session';
3
- import { Request, Response, NextFunction } from 'express';
4
- import { createDebug } from '@feathersjs/commons';
5
- import { Application } from '@feathersjs/feathers';
6
- import { AuthenticationResult } from '@feathersjs/authentication';
7
- import {
8
- Application as ExpressApplication,
9
- original as originalExpress
10
- } from '@feathersjs/express';
11
- import { OauthSetupSettings } from './utils';
12
- import { OAuthStrategy } from './strategy';
13
-
14
- const grantInstance = grant.express();
15
- const debug = createDebug('@feathersjs/authentication-oauth/express');
1
+ import grant from 'grant'
2
+ import session from 'express-session'
3
+ import { Request, Response, NextFunction } from 'express'
4
+ import { createDebug } from '@feathersjs/commons'
5
+ import { Application } from '@feathersjs/feathers'
6
+ import { AuthenticationResult } from '@feathersjs/authentication'
7
+ import { Application as ExpressApplication, original as originalExpress } from '@feathersjs/express'
8
+ import { OauthSetupSettings } from './utils'
9
+ import { OAuthStrategy } from './strategy'
10
+
11
+ const grantInstance = grant.express()
12
+ const debug = createDebug('@feathersjs/authentication-oauth/express')
16
13
 
17
14
  declare module 'express-session' {
18
15
  interface SessionData {
19
- redirect: string;
20
- accessToken: string;
21
- query: { [key: string]: any };
22
- grant: { [key: string]: any };
23
- headers: { [key: string]: any };
16
+ redirect: string
17
+ accessToken: string
18
+ query: { [key: string]: any }
19
+ grant: { [key: string]: any }
20
+ headers: { [key: string]: any }
24
21
  }
25
22
  }
26
23
 
27
24
  export default (options: OauthSetupSettings) => {
28
25
  return (feathersApp: Application) => {
29
- const { authService, linkStrategy } = options;
30
- const app = feathersApp as ExpressApplication;
31
- const config = app.get('grant');
26
+ const { authService, linkStrategy } = options
27
+ const app = feathersApp as ExpressApplication
28
+ const config = app.get('grant')
32
29
 
33
30
  if (!config) {
34
- debug('No grant configuration found, skipping Express oAuth setup');
35
- return;
31
+ debug('No grant configuration found, skipping Express oAuth setup')
32
+ return
36
33
  }
37
34
 
38
- const { prefix } = config.defaults;
39
- const expressSession = options.expressSession || session({
40
- secret: Math.random().toString(36).substring(7),
41
- saveUninitialized: true,
42
- resave: true
43
- });
44
- const grantApp = grantInstance(config);
45
- const authApp = originalExpress();
35
+ const { prefix } = config.defaults
36
+ const expressSession =
37
+ options.expressSession ||
38
+ session({
39
+ secret: Math.random().toString(36).substring(7),
40
+ saveUninitialized: true,
41
+ resave: true
42
+ })
43
+ const grantApp = grantInstance(config)
44
+ const authApp = originalExpress()
46
45
 
47
- authApp.use(expressSession);
46
+ authApp.use(expressSession)
48
47
 
49
48
  authApp.get('/:name', (req: Request, _res: Response, next: NextFunction) => {
50
- const { feathers_token, redirect, ...query } = req.query;
49
+ const { feathers_token, redirect, ...query } = req.query
51
50
 
52
51
  if (feathers_token) {
53
- debug('Got feathers_token query parameter to link accounts', feathers_token);
54
- req.session.accessToken = feathers_token as string;
52
+ debug('Got feathers_token query parameter to link accounts', feathers_token)
53
+ req.session.accessToken = feathers_token as string
55
54
  }
56
- req.session.redirect = redirect as string;
57
- req.session.query = query;
58
- req.session.headers = req.headers;
59
- if (typeof(req.session.save) === 'function') {
55
+ req.session.redirect = redirect as string
56
+ req.session.query = query
57
+ req.session.headers = req.headers
58
+ if (typeof req.session.save === 'function') {
60
59
  req.session.save((err: any) => {
61
60
  if (err) {
62
- next(`Error storing session: ${err}`);
61
+ next(`Error storing session: ${err}`)
63
62
  } else {
64
- next();
63
+ next()
65
64
  }
66
- });
65
+ })
66
+ } else {
67
+ next()
67
68
  }
68
- else {
69
- next();
70
- }
71
- });
69
+ })
72
70
 
73
71
  authApp.get('/:name/authenticate', async (req: Request, res: Response, next: NextFunction) => {
74
- const { name } = req.params ;
75
- const { accessToken, grant, query = {}, redirect, headers } = req.session;
76
- const service = app.defaultAuthentication(authService);
77
- const [ strategy ] = service.getStrategies(name) as OAuthStrategy[];
72
+ const { name } = req.params
73
+ const { accessToken, grant, query = {}, redirect, headers } = req.session
74
+ const service = app.defaultAuthentication(authService)
75
+ const [strategy] = service.getStrategies(name) as OAuthStrategy[]
78
76
  const params = {
79
77
  ...req.feathers,
80
- authStrategies: [ name ],
81
- authentication: accessToken ? {
82
- strategy: linkStrategy,
83
- accessToken
84
- } : null,
78
+ authStrategies: [name],
79
+ authentication: accessToken
80
+ ? {
81
+ strategy: linkStrategy,
82
+ accessToken
83
+ }
84
+ : null,
85
85
  query,
86
86
  redirect,
87
87
  headers
88
- };
89
- const sendResponse = async (data: AuthenticationResult|Error) => {
88
+ }
89
+ const sendResponse = async (data: AuthenticationResult | Error) => {
90
90
  try {
91
- const redirect = await strategy.getRedirect(data, params);
91
+ const redirect = await strategy.getRedirect(data, params)
92
92
 
93
93
  if (redirect !== null) {
94
- res.redirect(redirect);
94
+ res.redirect(redirect)
95
95
  } else if (data instanceof Error) {
96
- throw data;
96
+ throw data
97
97
  } else {
98
- res.json(data);
98
+ res.json(data)
99
99
  }
100
100
  } catch (error: any) {
101
- debug('oAuth error', error);
102
- next(error);
101
+ debug('oAuth error', error)
102
+ next(error)
103
103
  }
104
- };
104
+ }
105
105
 
106
106
  try {
107
- const payload = config.defaults.transport === 'session' ?
108
- grant.response : req.query;
107
+ const payload = config.defaults.transport === 'session' ? grant.response : req.query
109
108
  const authentication = {
110
109
  strategy: name,
111
110
  ...payload
112
- };
111
+ }
113
112
 
114
113
  await new Promise<void>((resolve, reject) => {
115
114
  if (req.session.destroy) {
116
- req.session.destroy((err: any) => err ? reject(err) : resolve());
117
- }
118
- else {
119
- req.session = null;
120
- resolve();
115
+ req.session.destroy((err: any) => (err ? reject(err) : resolve()))
116
+ } else {
117
+ req.session = null
118
+ resolve()
121
119
  }
122
- });
120
+ })
123
121
 
124
- debug(`Calling ${authService}.create authentication with strategy ${name}`);
122
+ debug(`Calling ${authService}.create authentication with strategy ${name}`)
125
123
 
126
- const authResult = await service.create(authentication, params);
124
+ const authResult = await service.create(authentication, params)
127
125
 
128
- debug('Successful oAuth authentication, sending response');
126
+ debug('Successful oAuth authentication, sending response')
129
127
 
130
- await sendResponse(authResult);
128
+ await sendResponse(authResult)
131
129
  } catch (error: any) {
132
- debug('Received oAuth authentication error', error.stack);
133
- await sendResponse(error);
130
+ debug('Received oAuth authentication error', error.stack)
131
+ await sendResponse(error)
134
132
  }
135
- });
133
+ })
136
134
 
137
- authApp.use(grantApp);
135
+ authApp.use(grantApp)
138
136
 
139
- app.set('grant', grantApp.config);
140
- app.use(prefix, authApp);
141
- };
142
- };
137
+ app.set('grant', grantApp.config)
138
+ app.use(prefix, authApp)
139
+ }
140
+ }
package/src/index.ts CHANGED
@@ -1,80 +1,87 @@
1
- import defaultsDeep from 'lodash/defaultsDeep';
2
- import each from 'lodash/each';
3
- import omit from 'lodash/omit';
4
- import { createDebug } from '@feathersjs/commons';
5
- import { Application } from '@feathersjs/feathers';
6
- import { OAuthStrategy, OAuthProfile } from './strategy';
7
- import { default as setupExpress } from './express';
8
- import { OauthSetupSettings, getDefaultSettings } from './utils';
1
+ import defaultsDeep from 'lodash/defaultsDeep'
2
+ import each from 'lodash/each'
3
+ import omit from 'lodash/omit'
4
+ import { createDebug } from '@feathersjs/commons'
5
+ import { Application } from '@feathersjs/feathers'
6
+ import { OAuthStrategy, OAuthProfile } from './strategy'
7
+ import { default as setupExpress } from './express'
8
+ import { OauthSetupSettings, getDefaultSettings } from './utils'
9
9
 
10
- const debug = createDebug('@feathersjs/authentication-oauth');
10
+ const debug = createDebug('@feathersjs/authentication-oauth')
11
11
 
12
- export { OauthSetupSettings, OAuthStrategy, OAuthProfile };
12
+ export { OauthSetupSettings, OAuthStrategy, OAuthProfile }
13
13
 
14
14
  export const setup = (options: OauthSetupSettings) => (app: Application) => {
15
- const service = app.defaultAuthentication ? app.defaultAuthentication(options.authService) : null;
15
+ const service = app.defaultAuthentication ? app.defaultAuthentication(options.authService) : null
16
16
 
17
17
  if (!service) {
18
- throw new Error('An authentication service must exist before registering @feathersjs/authentication-oauth');
18
+ throw new Error(
19
+ 'An authentication service must exist before registering @feathersjs/authentication-oauth'
20
+ )
19
21
  }
20
22
 
21
- const { oauth } = service.configuration;
23
+ const { oauth } = service.configuration
22
24
 
23
25
  if (!oauth) {
24
- debug('No oauth configuration found in authentication configuration. Skipping oAuth setup.');
25
- return;
26
+ debug('No oauth configuration found in authentication configuration. Skipping oAuth setup.')
27
+ return
26
28
  }
27
29
 
28
- const { strategyNames } = service;
30
+ const { strategyNames } = service
29
31
 
30
32
  // Set up all the defaults
31
- const { prefix = '/oauth' } = oauth.defaults || {};
32
- const port = app.get('port');
33
- let host = app.get('host');
34
- let protocol = 'https';
33
+ const { prefix = '/oauth' } = oauth.defaults || {}
34
+ const port = app.get('port')
35
+ let host = app.get('host')
36
+ let protocol = 'https'
35
37
 
36
38
  // Development environments commonly run on HTTP with an extended port
37
39
  if (app.get('env') === 'development') {
38
- protocol = 'http';
40
+ protocol = 'http'
39
41
  if (String(port) !== '80') {
40
- host += `:${port}`;
42
+ host += `:${port}`
41
43
  }
42
44
  }
43
45
 
44
- const grant = defaultsDeep({
45
- defaults: {
46
- prefix,
47
- origin: `${oauth?.defaults?.protocol ?? protocol}://${oauth?.defaults?.host ?? host}`,
48
- transport: oauth?.defaults?.transport ?? 'session',
49
- response: ['tokens', 'raw', 'profile']
50
- }
51
- }, omit(oauth, ['redirect', 'origins']));
46
+ const grant = defaultsDeep(
47
+ {
48
+ defaults: {
49
+ prefix,
50
+ origin: `${oauth?.defaults?.protocol ?? protocol}://${oauth?.defaults?.host ?? host}`,
51
+ transport: oauth?.defaults?.transport ?? 'session',
52
+ response: ['tokens', 'raw', 'profile']
53
+ }
54
+ },
55
+ omit(oauth, ['redirect', 'origins'])
56
+ )
52
57
 
53
58
  const getUrl = (url: string) => {
54
- const { defaults } = grant;
55
- return `${defaults.origin}${prefix}/${url}`;
56
- };
59
+ const { defaults } = grant
60
+ return `${defaults.origin}${prefix}/${url}`
61
+ }
57
62
 
58
63
  each(grant, (value, name) => {
59
64
  if (name !== 'defaults') {
60
- value.callback = value.callback || getUrl(`${name}/authenticate`);
61
- value.redirect_uri = value.redirect_uri || getUrl(`${name}/callback`);
65
+ value.callback = value.callback || getUrl(`${name}/authenticate`)
66
+ value.redirect_uri = value.redirect_uri || getUrl(`${name}/callback`)
62
67
 
63
68
  if (!strategyNames.includes(name)) {
64
- debug(`Registering oAuth default strategy for '${name}'`);
65
- service.register(name, new OAuthStrategy());
69
+ debug(`Registering oAuth default strategy for '${name}'`)
70
+ service.register(name, new OAuthStrategy())
66
71
  }
67
72
  }
68
- });
73
+ })
69
74
 
70
- app.set('grant', grant);
71
- };
75
+ app.set('grant', grant)
76
+ }
72
77
 
73
- export const express = (settings: Partial<OauthSetupSettings> = {}) => (app: Application) => {
74
- const options = getDefaultSettings(app, settings);
78
+ export const express =
79
+ (settings: Partial<OauthSetupSettings> = {}) =>
80
+ (app: Application) => {
81
+ const options = getDefaultSettings(app, settings)
75
82
 
76
- app.configure(setup(options));
77
- app.configure(setupExpress(options));
78
- };
83
+ app.configure(setup(options))
84
+ app.configure(setupExpress(options))
85
+ }
79
86
 
80
- export const expressOauth = express;
87
+ export const expressOauth = express
package/src/strategy.ts CHANGED
@@ -1,176 +1,183 @@
1
1
  /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
2
3
  // @ts-ignore
3
- import querystring from 'querystring';
4
+ import querystring from 'querystring'
4
5
  import {
5
- AuthenticationRequest, AuthenticationBaseStrategy, AuthenticationResult, AuthenticationParams
6
- } from '@feathersjs/authentication';
7
- import { Params } from '@feathersjs/feathers';
8
- import { NotAuthenticated } from '@feathersjs/errors';
9
- import { createDebug, _ } from '@feathersjs/commons';
6
+ AuthenticationRequest,
7
+ AuthenticationBaseStrategy,
8
+ AuthenticationResult,
9
+ AuthenticationParams
10
+ } from '@feathersjs/authentication'
11
+ import { Params } from '@feathersjs/feathers'
12
+ import { NotAuthenticated } from '@feathersjs/errors'
13
+ import { createDebug, _ } from '@feathersjs/commons'
10
14
 
11
- const debug = createDebug('@feathersjs/authentication-oauth/strategy');
15
+ const debug = createDebug('@feathersjs/authentication-oauth/strategy')
12
16
 
13
17
  export interface OAuthProfile {
14
- id?: string|number;
15
- [key: string]: any;
18
+ id?: string | number
19
+ [key: string]: any
16
20
  }
17
21
 
18
22
  export class OAuthStrategy extends AuthenticationBaseStrategy {
19
- get configuration () {
20
- const { entity, service, entityId, oauth } = this.authentication.configuration;
21
- const config = oauth[this.name];
23
+ get configuration() {
24
+ const { entity, service, entityId, oauth } = this.authentication.configuration
25
+ const config = oauth[this.name]
22
26
 
23
27
  return {
24
28
  entity,
25
29
  service,
26
30
  entityId,
27
31
  ...config
28
- };
32
+ }
29
33
  }
30
34
 
31
- get entityId (): string {
32
- const { entityService } = this;
35
+ get entityId(): string {
36
+ const { entityService } = this
33
37
 
34
- return this.configuration.entityId || (entityService && (entityService as any).id);
38
+ return this.configuration.entityId || (entityService && (entityService as any).id)
35
39
  }
36
40
 
37
- async getEntityQuery (profile: OAuthProfile, _params: Params) {
41
+ async getEntityQuery(profile: OAuthProfile, _params: Params) {
38
42
  return {
39
43
  [`${this.name}Id`]: profile.sub || profile.id
40
- };
44
+ }
41
45
  }
42
46
 
43
- async getEntityData (profile: OAuthProfile, _existingEntity: any, _params: Params) {
47
+ async getEntityData(profile: OAuthProfile, _existingEntity: any, _params: Params) {
44
48
  return {
45
49
  [`${this.name}Id`]: profile.sub || profile.id
46
- };
50
+ }
47
51
  }
48
52
 
49
- async getProfile (data: AuthenticationRequest, _params: Params) {
53
+ async getProfile(data: AuthenticationRequest, _params: Params) {
50
54
  return data.profile
51
55
  }
52
56
 
53
- async getCurrentEntity (params: Params) {
54
- const { authentication } = params;
55
- const { entity } = this.configuration;
57
+ async getCurrentEntity(params: Params) {
58
+ const { authentication } = params
59
+ const { entity } = this.configuration
56
60
 
57
61
  if (authentication && authentication.strategy) {
58
- debug('getCurrentEntity with authentication', authentication);
62
+ debug('getCurrentEntity with authentication', authentication)
59
63
 
60
- const { strategy } = authentication;
61
- const authResult = await this.authentication
62
- .authenticate(authentication, params, strategy);
64
+ const { strategy } = authentication
65
+ const authResult = await this.authentication.authenticate(authentication, params, strategy)
63
66
 
64
- return authResult[entity];
67
+ return authResult[entity]
65
68
  }
66
69
 
67
- return null;
70
+ return null
68
71
  }
69
72
 
70
- async getAllowedOrigin (params?: Params) {
71
- const { redirect, origins } = this.authentication.configuration.oauth;
73
+ async getAllowedOrigin(params?: Params) {
74
+ const { redirect, origins } = this.authentication.configuration.oauth
72
75
 
73
76
  if (Array.isArray(origins)) {
74
- const referer = params?.headers?.referer || '';
75
- const allowedOrigin = origins.find(current => referer.toLowerCase().startsWith(current.toLowerCase()));
77
+ const referer = params?.headers?.referer || ''
78
+ const allowedOrigin = origins.find((current) => referer.toLowerCase().startsWith(current.toLowerCase()))
76
79
 
77
- if(!allowedOrigin) {
78
- throw new NotAuthenticated(`Referer "${referer || '[header not available]'}" not allowed.`);
80
+ if (!allowedOrigin) {
81
+ throw new NotAuthenticated(`Referer "${referer || '[header not available]'}" not allowed.`)
79
82
  }
80
83
 
81
- return allowedOrigin;
84
+ return allowedOrigin
82
85
  }
83
86
 
84
- return redirect;
87
+ return redirect
85
88
  }
86
89
 
87
- async getRedirect (data: AuthenticationResult|Error, params?: AuthenticationParams): Promise<string | null> {
88
- const queryRedirect = (params && params.redirect) || '';
89
- const redirect = await this.getAllowedOrigin(params);
90
+ async getRedirect(
91
+ data: AuthenticationResult | Error,
92
+ params?: AuthenticationParams
93
+ ): Promise<string | null> {
94
+ const queryRedirect = (params && params.redirect) || ''
95
+ const redirect = await this.getAllowedOrigin(params)
90
96
 
91
97
  if (!redirect) {
92
- return null;
98
+ return null
93
99
  }
94
100
 
95
- const redirectUrl = `${redirect}${queryRedirect}`;
96
- const separator = redirect.endsWith('?') ? '' :
97
- (redirect.indexOf('#') !== -1 ? '?' : '#');
98
- const authResult: AuthenticationResult = data;
99
- const query = authResult.accessToken ? {
100
- access_token: authResult.accessToken
101
- } : {
102
- error: data.message || 'OAuth Authentication not successful'
103
- };
104
-
105
- return `${redirectUrl}${separator}${querystring.stringify(query)}`;
101
+ const redirectUrl = `${redirect}${queryRedirect}`
102
+ const separator = redirect.endsWith('?') ? '' : redirect.indexOf('#') !== -1 ? '?' : '#'
103
+ const authResult: AuthenticationResult = data
104
+ const query = authResult.accessToken
105
+ ? {
106
+ access_token: authResult.accessToken
107
+ }
108
+ : {
109
+ error: data.message || 'OAuth Authentication not successful'
110
+ }
111
+
112
+ return `${redirectUrl}${separator}${querystring.stringify(query)}`
106
113
  }
107
114
 
108
- async findEntity (profile: OAuthProfile, params: Params) {
109
- const query = await this.getEntityQuery(profile, params);
115
+ async findEntity(profile: OAuthProfile, params: Params) {
116
+ const query = await this.getEntityQuery(profile, params)
110
117
 
111
- debug('findEntity with query', query);
118
+ debug('findEntity with query', query)
112
119
 
113
120
  const result = await this.entityService.find({
114
121
  ...params,
115
122
  query
116
- });
117
- const [ entity = null ] = result.data ? result.data : result;
123
+ })
124
+ const [entity = null] = result.data ? result.data : result
118
125
 
119
- debug('findEntity returning', entity);
126
+ debug('findEntity returning', entity)
120
127
 
121
- return entity;
128
+ return entity
122
129
  }
123
130
 
124
- async createEntity (profile: OAuthProfile, params: Params) {
125
- const data = await this.getEntityData(profile, null, params);
131
+ async createEntity(profile: OAuthProfile, params: Params) {
132
+ const data = await this.getEntityData(profile, null, params)
126
133
 
127
- debug('createEntity with data', data);
134
+ debug('createEntity with data', data)
128
135
 
129
- return this.entityService.create(data, _.omit(params, 'query'));
136
+ return this.entityService.create(data, _.omit(params, 'query'))
130
137
  }
131
138
 
132
- async updateEntity (entity: any, profile: OAuthProfile, params: Params) {
133
- const id = entity[this.entityId];
134
- const data = await this.getEntityData(profile, entity, params);
139
+ async updateEntity(entity: any, profile: OAuthProfile, params: Params) {
140
+ const id = entity[this.entityId]
141
+ const data = await this.getEntityData(profile, entity, params)
135
142
 
136
- debug(`updateEntity with id ${id} and data`, data);
143
+ debug(`updateEntity with id ${id} and data`, data)
137
144
 
138
- return this.entityService.patch(id, data, _.omit(params, 'query'));
145
+ return this.entityService.patch(id, data, _.omit(params, 'query'))
139
146
  }
140
147
 
141
- async getEntity (result: any, params: Params) {
142
- const { entityService } = this;
143
- const { entityId = (entityService as any).id, entity } = this.configuration;
148
+ async getEntity(result: any, params: Params) {
149
+ const { entityService } = this
150
+ const { entityId = (entityService as any).id, entity } = this.configuration
144
151
 
145
152
  if (!entityId || result[entityId] === undefined) {
146
- throw new NotAuthenticated('Could not get oAuth entity');
153
+ throw new NotAuthenticated('Could not get oAuth entity')
147
154
  }
148
155
 
149
156
  if (!params.provider) {
150
- return result;
157
+ return result
151
158
  }
152
159
 
153
160
  return entityService.get(result[entityId], {
154
161
  ..._.omit(params, 'query'),
155
162
  [entity]: result
156
- });
163
+ })
157
164
  }
158
165
 
159
- async authenticate (authentication: AuthenticationRequest, originalParams: AuthenticationParams) {
160
- const entity: string = this.configuration.entity;
161
- const { provider, ...params } = originalParams;
162
- const profile = await this.getProfile(authentication, params);
163
- const existingEntity = await this.findEntity(profile, params)
164
- || await this.getCurrentEntity(params);
166
+ async authenticate(authentication: AuthenticationRequest, originalParams: AuthenticationParams) {
167
+ const entity: string = this.configuration.entity
168
+ const { provider, ...params } = originalParams
169
+ const profile = await this.getProfile(authentication, params)
170
+ const existingEntity = (await this.findEntity(profile, params)) || (await this.getCurrentEntity(params))
165
171
 
166
- debug('authenticate with (existing) entity', existingEntity);
172
+ debug('authenticate with (existing) entity', existingEntity)
167
173
 
168
- const authEntity = !existingEntity ? await this.createEntity(profile, params)
169
- : await this.updateEntity(existingEntity, profile, params);
174
+ const authEntity = !existingEntity
175
+ ? await this.createEntity(profile, params)
176
+ : await this.updateEntity(existingEntity, profile, params)
170
177
 
171
178
  return {
172
179
  authentication: { strategy: this.name },
173
180
  [entity]: await this.getEntity(authEntity, originalParams)
174
- };
181
+ }
175
182
  }
176
183
  }
package/src/utils.ts CHANGED
@@ -1,17 +1,17 @@
1
- import { RequestHandler } from 'express';
2
- import { Application } from '@feathersjs/feathers';
1
+ import { RequestHandler } from 'express'
2
+ import { Application } from '@feathersjs/feathers'
3
3
 
4
4
  export interface OauthSetupSettings {
5
- authService?: string;
6
- expressSession?: RequestHandler;
7
- linkStrategy: string;
5
+ authService?: string
6
+ expressSession?: RequestHandler
7
+ linkStrategy: string
8
8
  }
9
9
 
10
10
  export const getDefaultSettings = (_app: Application, other?: Partial<OauthSetupSettings>) => {
11
11
  const defaults: OauthSetupSettings = {
12
12
  linkStrategy: 'jwt',
13
13
  ...other
14
- };
14
+ }
15
15
 
16
- return defaults;
17
- };
16
+ return defaults
17
+ }