dleangen
08/14/2022, 9:08 AMrp_st
08/14/2022, 9:09 AMdleangen
08/14/2022, 9:12 AMdleangen
08/14/2022, 9:12 AMSession.init({
jwt: {
enable: true,
},
override: {
functions: function (originalImplementation) {
return {
...originalImplementation,
createNewSession: async function (input) {
input.accessTokenPayload = {
...input.accessTokenPayload,
role: "user”, // Not yet sure what this is, so just trying to test
iss: ** As required by Firebase **,
sub: ** As required by Firebase **
aud: "https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit",
claims: {
role: "user",
}
};
return originalImplementation.createNewSession(input);
},
};
}
},
}),
Can you tell me what I am doing wrong here, and help get me on the right track?dleangen
08/14/2022, 9:14 AMrp_st
08/14/2022, 9:15 AMdleangen
08/14/2022, 9:16 AMdleangen
08/14/2022, 9:16 AMrp_st
08/14/2022, 9:16 AMrp_st
08/14/2022, 9:16 AMdleangen
08/14/2022, 9:16 AMdleangen
08/14/2022, 9:18 AMdleangen
08/14/2022, 9:19 AMYou can create a custom token with the Firebase Admin SDK, or you can use a third-party JWT library if your server is written in a language which Firebase does not natively support.
dleangen
08/14/2022, 9:20 AMCustom tokens are signed JWTs where the private key used for signing belongs to a Google service account.
dleangen
08/14/2022, 9:21 AMrp_st
08/14/2022, 9:22 AMdleangen
08/14/2022, 9:22 AMrp_st
08/14/2022, 9:24 AMSession.init({
override: {
functions: function (originalImplementation) {
return {
...originalImplementation,
createNewSession: async function (input) {
let firebaseToken = // create JWT using google's admin SDK
input.accessTokenPayload = {
...input.accessTokenPayload,
firebaseToken
};
return originalImplementation.createNewSession(input);
},
};
}
},
}),
And then you can fetch that token from the access token payload on the frontend & backend whenever required. Also notice that i removed the jwt enable block from the Session.init since it's not required (i guess)dleangen
08/14/2022, 9:24 AMrp_st
08/14/2022, 9:24 AM