170 похожих чатов

Привет, подскажите пожалуйста, есть авторизация через гугл, как получить тело

request в таком сценарии??
export class GoogleLoginStrategy extends PassportStrategy(GoogleStrategy, 'google-token') {
constructor(private readonly userSessionService: UserSessionService, private readonly configService: ConfigService) {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
super(configService.googleStrategyConfig,
async (accessToken: string, refreshToken: string, profile: any, done: Function) => {
try {
if (!profile._json.verified_email) {
done(new Error('email is not verified'), null);
}
const socialProfile: SocialProfile = {
email: profile._json.email,
id: profile.id,
fullName: profile.name?.givenName + ' ' + profile.name?.familyName,
social: Social.GOOGLE,
};

const user = await this.userSessionService.signupBySocial(socialProfile);
done(null, user);
} catch (err) {
done(err, null);
}

});
}
}

5 ответов

8 просмотров

Юзера получишь хочешь?

Sasha-Sasha Автор вопроса

Суть в том что когда приходит новый пользователь, мне нужно получить новое имя уникальное имя которое он должен вписать в форму, и я не понимаю каким образом его отловить можно

Sasha Sasha
Суть в том что когда приходит новый пользователь, ...

Покажи де юзаешь авторизацию, и обрабатываешь форму юзера

Sasha-Sasha Автор вопроса

Да собственно вот. Есть контроллер с декораторами и в проваейдере у меня прописана стратегия по гуглу @ApiOk({ summary: 'Вход через google' }, { type: UserPasswordLoginPayloadDto }) @UseGuards(JwtGoogleAuthGuard) @UseInterceptors(GoogleAuthInterceptor) @Get('signupGoogle') async signupGoogle(@UserTransport() user: UserDti): Promise<UserPasswordLoginPayloadDto> { if (user.deleted !== DeletedStatuses.NOT_DELETED) { throw new UserDeletedException(); } const token = await this.userSessionService.createToken(user); return new UserPasswordLoginPayloadDto(user, token); } export class GoogleLoginStrategy extends PassportStrategy(GoogleStrategy, 'google-token') { constructor(private readonly userSessionService: UserSessionService, private readonly configService: ConfigService) { // eslint-disable-next-line @typescript-eslint/no-explicit-any super(configService.googleStrategyConfig, (req: Request, res: Response) => { async (accessToken: string, refreshToken: string, profile: any, done: Function) => { try { process.nextTick(() => { console.log('======req', req, '======req'); }) if (!profile._json.verified_email) { done(new Error('email is not verified'), null); } const socialProfile: SocialProfile = { email: profile._json.email, id: profile.id, fullName: profile.name?.givenName + ' ' + profile.name?.familyName, social: Social.GOOGLE, }; const user = await this.userSessionService.signupBySocial(socialProfile); done(null, user); } catch (err) { done(err, null); } } }); } } И тк старый код просто вписывает uuid вместо имени юзера, мне нужно его изменить на обычное имя. И у меня появилась идея что можно это имя с фронта запихать в url и вмомент проверки гугла получать это имя и вписывать в бд. Клиент не я пишу

Sasha-Sasha Автор вопроса
Sasha Sasha
Да собственно вот. Есть контроллер с декораторами ...

ну функцию (req: Request, res: Response) => { не обращай внимание, это я эксперементирую)

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
11
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Подскажите, можно ведь комбинировать запись данных в один и тот же Stream через TFileStream и через TCompressionStream поочерёдно? Ну т.е. часть данных мне нужно сжать, часть ...
notme
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, кто сталкивался с тем, что Electron.js не разворачивает билд React.js-приложения? Голый body в чёрном цвете, как и должно быть, но остального - нет. Билд работает исп...
..
6
Anyone knows how to build this widget in Flutter? I have all the assets for round stations and the road, but how can I make the my widget animate between these stations? And h...
Mohammad Zamani
9
Карта сайта