piano1029
08/16/2022, 11:38 AMpiano1029
08/16/2022, 11:40 AMrp_st
08/16/2022, 12:04 PMpiano1029
08/16/2022, 12:25 PMrp_st
08/16/2022, 12:36 PMts
ThirdParty.init({
signInAndUpFeature: {
providers: [{
...DiscordProvider,
get: (redirectURI, authCodeFromRequest, userContext) => {
let result = DiscordProvider.get(redirectURI, authCodeFromRequest, userContext);
return {
...result,
getProfileInfo: (accessTokenAPIResponse: {
access_token,
expires_in,
token_type
}) => {
let accessToken = accessTokenAPIResponse.access_token;
let authHeader = `Bearer ${accessToken}`;
let response = await axios({
method: "get",
url: "https://discord.com/api/users/@me",
headers: {
Authorization: authHeader,
},
});
let userInfo = response.data;
let username = "..." // fetch username from discord
return {
id: userInfo.id,
email:
userInfo.email === undefined
? undefined
: {
id: username + "@example.com", // doesn't really matter
isVerified: true,
},
};
},
}
},
}]
}
})
rp_st
08/16/2022, 12:37 PM${username}@example.com
and this should be fine. Just jeep in mind that if you even want to send an email to this user, you won't actually have their email.piano1029
08/16/2022, 12:45 PMrp_st
08/16/2022, 12:46 PMpiano1029
08/16/2022, 1:24 PMts
export default async function userData(
req: NextApiRequest & Request,
res: NextApiResponse & Response
) {
await superTokensNextWrapper(
async (next) => {
await middleware()(req, res, next)
},
req,
res
)
const session = (req as SessionRequest).session;
console.log(session)
const userId = session!.getUserId();
const { metadata } = await UserMetadata.getUserMetadata(userId);
res.json(metadata)
}
session
is undefined alwaysrp_st
08/16/2022, 1:27 PMpiano1029
08/16/2022, 1:30 PMSuperTokens is an open source authentication solution offering features like: Different types of login: Email / password, Passwordless (OTP or Magic link based).
Powered by