🚩 create user session when provision
create a user session after provisioning authentication if the account has been created previously.
This commit is contained in:
@ -1,5 +1,8 @@
|
||||
import { User } from "@prisma/client";
|
||||
import { UserHeaderInformation } from "../../../../helpers/http/userHeader/getUserHeaderInformation/types";
|
||||
import { findUserService } from "../../../user/services/internal/findUser.service";
|
||||
import { createUserSessionService } from "../../../userSession/services/createUserSession.service";
|
||||
import { ErrorForwarder } from "../../../../helpers/error/instances/forwarder";
|
||||
|
||||
export const OAuthUserProvisionService = async (
|
||||
payload: {
|
||||
@ -20,16 +23,20 @@ export const OAuthUserProvisionService = async (
|
||||
*
|
||||
* This is just example!!
|
||||
*/
|
||||
const providerId = `${payload.providerName}_${payload.openId}`;
|
||||
const findUserResult = await findUserService({
|
||||
identifier: providerId,
|
||||
queryTarget: "providerId",
|
||||
options: { verbosity: "exist" },
|
||||
});
|
||||
try {
|
||||
const providerId = `${payload.providerName}_${payload.openId}`;
|
||||
const findUserResult = (await findUserService({
|
||||
identifier: providerId,
|
||||
queryTarget: "providerId",
|
||||
options: { verbosity: "full" },
|
||||
})) as User;
|
||||
|
||||
if (findUserResult) {
|
||||
return "Already Created";
|
||||
} else {
|
||||
return "Not Found";
|
||||
if (findUserResult) {
|
||||
return await createUserSessionService(findUserResult.id, userHeaderInfo);
|
||||
} else {
|
||||
return "Not Found";
|
||||
}
|
||||
} catch (error) {
|
||||
ErrorForwarder(error);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user