omzi
omzi
CCConvex Community
Created by omzi on 10/29/2023 in #support-community
Using Convex with Hanko
I'm trying to get Convex to authenticate my mutations with Hanko but I'm getting an authentication error. Hanko issues JWT tokens which can be easily verified. Here's my current auth config:
const AuthConfig = {
providers: [
{
domain: 'https://545180e5-xxxx-xxxx-xxxx-cece5f3a581d.hanko.io',
applicationID: '...'
}
]
};

export default AuthConfig;
const AuthConfig = {
providers: [
{
domain: 'https://545180e5-xxxx-xxxx-xxxx-cece5f3a581d.hanko.io',
applicationID: '...'
}
]
};

export default AuthConfig;
I'm getting an authentication error from a mutation:
export const createUserData = mutation({
args: {
username: v.optional(v.string()),
firstName: v.optional(v.string()),
lastName: v.optional(v.string()),
bio: v.optional(v.string()),
isOnboarded: v.boolean()
},
handler: async (ctx, args) => {
const identity = await ctx.auth.getUserIdentity();

if (!identity) {
throw new Error('Not authenticated!');
}

const userId = identity.subject;
const document = await ctx.db.insert('userdata', {
userId,
username: args.username,
firstName: args.firstName,
lastName: args.lastName,
bio: args.bio,
isOnboarded: args.isOnboarded
});

return document;
},
});
export const createUserData = mutation({
args: {
username: v.optional(v.string()),
firstName: v.optional(v.string()),
lastName: v.optional(v.string()),
bio: v.optional(v.string()),
isOnboarded: v.boolean()
},
handler: async (ctx, args) => {
const identity = await ctx.auth.getUserIdentity();

if (!identity) {
throw new Error('Not authenticated!');
}

const userId = identity.subject;
const document = await ctx.db.insert('userdata', {
userId,
username: args.username,
firstName: args.firstName,
lastName: args.lastName,
bio: args.bio,
isOnboarded: args.isOnboarded
});

return document;
},
});
I guess my question now is: Is there something I'm missing? Or is there another way to configure Convex auth?
11 replies