что такое redirect_uri?
да
ну короче это урл сервера на который ответы приходят?
Туда суешь ссылку на свой сервер где обрабатывается коллбэк
https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/google-logins?view=aspnetcore-5.0#change-the-default-callback-uri Для разработки будет что-то в духе https://localhost:5001/signin-google В проде нужно указывать url прода
Например я укажу такой урл, как ты написал, мне нужно будет настраивать routing к контролу, в котором метод принимающий ответ от гугл апи? наподобие такого Route["signin-googl"]
Если ты дефолтный identity юзаешь, то не нужно
тупой вопрос, а как это влияет, ведь контролу нужно знать где брать ответ?
Гугл после успешной авторизации тебя перекидывает на этот url, в identity уже все настроено для хэндлинга этого редиректа
Знающие, поправьте, если я не прав, короче этот редирект нужен для того, когда мы авторизуемся через OAuth, нас перенаправляет на страницу, на которой мы подтверждаем, что разрешаем от нашего аккаунта взаимодействовать с api и дальше в коде делаем любые запросы и пользуемся?
Это просто следующий этап в оатухе. С гуглом не связано
*Я ни разу еще не работал с OAuth* Т.е это разрешение использования аккаунта входит в "следующий этап"?
Если ты хочешь чтобы юзер вернулся к тебе после аутентификации в гугле (зуме, Фейсбуке, Майкрософте, окте), ты заполнишь редирект_урл!)
вот давай логически. К тебе приходит хуй знает кто. Ты говоришь - я доверяю Гуглу, если он подтвердит твою личность, я ок. Сходи-ка по вот этой урле, и вот эту записку гуглу передай. Ты отправляешь пользователя в гугл. Простым редиректом или линком, похуй. Главное что он ушел полностью чтобы решать свои вопросы с аутентификацией в гугле. Он чот там сделал (ввёл пароли, или у него уже залогиненая кука была, это неважно), гугл ему выдал зашифрованное подтверждение. А вот дальше что?))) Гугл вообще в душе не ведает откуда ему прилетел этот юзер. Юзер тоже не в курсе что ему с этим JWT делать, только что рыдать Поэтому в OAuth айденити сервер смотрит на простое поле redirect_url (которое ты передаешь в записке!) и посылает юзера по нему. К тебе обратно по этому самому redirect_url приходит довольный юзер со странным JWT где есть зашифрованная срань. Ты сам уже идешь к гуглу и спрашиваешь - тут ко мне пришел хер, говорит что он Вася Пупкин, вот скан его паспорта JWT. Похож? Ну и далее если гугл говорит что да, похож, подпись Васи, а ты веришь гуглу, то всё ок. Сохраняешь эту сессию.
Тут еще есть момент что если там есть MITM, то обратно по redirect_url может придти не тот кто изначально от тебя уходил. Для защиты от этого есть поле state которое так же кладется в записку для гугла, а гугл его должен вернуть В ТОМ ЖЕ ВИДЕ. По приходу пользователя обратно к тебе, ты в начале проверяешь state если оно такое же как и было, то это тот же запрос. И тогда уже идешь в гугл со сканом паспорта пользователя для финального подтверждения. Не очень сложный флоу так-то
Обсуждают сегодня