aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hooks/requireAuth.ts7
-rw-r--r--hooks/tryAuthenticate.ts8
-rw-r--r--services/index.ts8
-rw-r--r--services/votes/votes.hooks.ts4
4 files changed, 25 insertions, 2 deletions
diff --git a/hooks/requireAuth.ts b/hooks/requireAuth.ts
new file mode 100644
index 0000000..a7b0e96
--- /dev/null
+++ b/hooks/requireAuth.ts
@@ -0,0 +1,7 @@
+import { HookContext } from '@feathersjs/feathers';
+
+export default async (context: HookContext): Promise<HookContext> => {
+ if (!context.params.user) throw new Error('This endpoint requires auth!');
+ return context;
+};
+
diff --git a/hooks/tryAuthenticate.ts b/hooks/tryAuthenticate.ts
new file mode 100644
index 0000000..e179417
--- /dev/null
+++ b/hooks/tryAuthenticate.ts
@@ -0,0 +1,8 @@
+import { HookContext } from '@feathersjs/feathers';
+import { authenticate } from '@feathersjs/authentication';
+
+
+export default async (context: HookContext): Promise<HookContext> => {
+ return authenticate('jwt')(context).catch(() => context);
+};
+
diff --git a/services/index.ts b/services/index.ts
index 638fb7a..fe5ffdc 100644
--- a/services/index.ts
+++ b/services/index.ts
@@ -5,11 +5,19 @@ import Profiles from './profiles/profiles.service';
import Votes from './votes/votes.service';
import Auth from './auth/auth.service';
+import tryAuthenticate from '../hooks/tryAuthenticate';
+
export default (app: Application): void => {
app.configure(Auth);
app.configure(Users);
app.configure(Polls);
app.configure(Profiles);
app.configure(Votes);
+
+ app.hooks({
+ before: {
+ all: tryAuthenticate
+ }
+ })
};
diff --git a/services/votes/votes.hooks.ts b/services/votes/votes.hooks.ts
index 63f19e3..1cf7261 100644
--- a/services/votes/votes.hooks.ts
+++ b/services/votes/votes.hooks.ts
@@ -1,5 +1,5 @@
import { HookContext } from '@feathersjs/feathers';
-import { authenticate } from '@feathersjs/authentication';
+import requireAuth from '../../hooks/requireAuth';
const addUserId = async (context: HookContext): Promise<HookContext> => {
const { params: { user} } = context;
@@ -9,7 +9,7 @@ const addUserId = async (context: HookContext): Promise<HookContext> => {
export default {
before: {
- create: [authenticate('jwt'), addUserId]
+ create: [requireAuth, addUserId]
}
};