23 Feb 2024 |
BANO | Тогда никто кроме тебя не сможет их понять и соответственно выдать | 13:13:32 |
BANO | Но тогда твоя мама не сможет заходить через мастодон и через твой сервер одновременно | 13:13:57 |
BANO | In reply to Maxim Lebedev Нет Короче я понял твою архитектурную проблему. Если ты прямо совсем не хочешь бд делать то можешь попробовать через кастомные скоупы | 13:15:31 |
BANO | Но тогда я на своем indieauth сервере буду себе выдавать такие скоупы и приду на твой сайт и все поломаю | 13:16:08 |
BANO | Вот теперь я понял... | 13:20:35 |
Maxim Lebedev | Download image.jpeg | 13:21:30 |
Maxim Lebedev | не знаю насколько это поможет, но попробую | 13:21:30 |
BANO | In reply to Maxim Lebedev Я ковыряю для своего сайта IndieAuth и подумал вот о чём.
По-умолчанию кто-угодно может попытаться авторизоваться для каких-нибудь целей. Для меня, очевидно, чтобы я мог что-то делать на своём же сайте: редачить страницы, модерировать комментарии, что-то подкручивать в настройках и всё-такое. Для простых смертных — читать что-то заприваченное только для них или "для всех авторизованных", оставлять и редачить свои комментарии.
А как различать кому какие scope выдавать если их нужно перечислить ещё до подтверждения владения ведённого домена? Навскидку пока что думаю о том, чтобы брать ввод из поля логинки и чекать его с BaseURL сайта и если они совпадают (me:https://toby3d.me/ == BaseURL:https://toby3d.me/ ), то выдавать широкий набор scope как владельцу. В остальных случаях (me:http://example.com/ != BaseURL:https://toby3d.me/ ) выдавать минимальный набор scope.
Я в ту сторону думаю или существует какой-то механизм о которой я не знаю? Просто я практически никогда не работал с логинками, максимум писал отправку "магических ссылок" по почте Если ты не хочешь делать на сайте бд с людьми, тогда тебе действительно нужно запрашивать разные скоупы в зависимости от разных доменов, но ты можешь тогда просто на сервере захардкодить на каких доменах какие запрашивать, или если ты хочешь на фронте сделать, то можно через хеши | 13:22:26 |
Maxim Lebedev | In reply to Maxim Lebedev sent an image Я описывал схему что проверяю ввод на клиенте и от него иду к IndieAuth с предположением, что если введён тот же урл на котором работает клиент, то это админ на выходе из IndieAuth у него должны быть все права.
Если ввод подразумевает чей-то чужой сайт, то идти к IndieAuth с минимальным набором scope и ждать его возвращение с моего или его собственного сервера аутентификации с минимальным набором scope. | 13:23:50 |
BANO | In reply to Maxim Lebedev Я описывал схему что проверяю ввод на клиенте и от него иду к IndieAuth с предположением, что если введён тот же урл на котором работает клиент, то это админ на выходе из IndieAuth у него должны быть все права.
Если ввод подразумевает чей-то чужой сайт, то идти к IndieAuth с минимальным набором scope и ждать его возвращение с моего или его собственного сервера аутентификации с минимальным набором scope. Ща я за комп сяду нарисую 2 схемки | 13:24:41 |
Maxim Lebedev | In reply to Maxim Lebedev Я описывал схему что проверяю ввод на клиенте и от него иду к IndieAuth с предположением, что если введён тот же урл на котором работает клиент, то это админ на выходе из IndieAuth у него должны быть все права.
Если ввод подразумевает чей-то чужой сайт, то идти к IndieAuth с минимальным набором scope и ждать его возвращение с моего или его собственного сервера аутентификации с минимальным набором scope. И мой вопрос был про то что правильно ли проверять ввод и из него делать какие-то выводы на клиенте, до ухода/редиректа в сервер IndieAuth. Без баз данных, без прочих хранилок, банально простым хардкодом:
if config.BaseURL == form.EnteredMe {
http.Redirect("https://auth.example.com/auth?scope=read+update+publish+draft...&me="+form.EnteredMe...)
} else {
http.Redirect("https://auth.example.com/auth?scope=profile&me="+form.EnteredMe...)
}
... | 13:27:06 |
Maxim Lebedev | * И мой вопрос был про то что правильно ли проверять ввод и из него делать какие-то выводы на клиенте, до ухода/редиректа в сервер IndieAuth. Без баз данных, без прочих хранилок, хоть банально простым хардкодом:
if config.BaseURL == form.EnteredMe {
http.Redirect("https://auth.example.com/auth?scope=read+update+publish+draft...&me="+form.EnteredMe...)
} else {
http.Redirect("https://auth.example.com/auth?scope=profile&me="+form.EnteredMe...)
}
... | 13:27:22 |
Maxim Lebedev | In reply to Maxim Lebedev И мой вопрос был про то что правильно ли проверять ввод и из него делать какие-то выводы на клиенте, до ухода/редиректа в сервер IndieAuth. Без баз данных, без прочих хранилок, банально простым хардкодом:
if config.BaseURL == form.EnteredMe {
http.Redirect("https://auth.example.com/auth?scope=read+update+publish+draft...&me="+form.EnteredMe...)
} else {
http.Redirect("https://auth.example.com/auth?scope=profile&me="+form.EnteredMe...)
}
...
На старте конечно у меня будет храниться краткосрочная сессия в которой запишу ввод и предлагаемые scope. А при повторном приёме уже после IndieAuth сравню что рандом не запросил больше того, сколько я изначально предположил. | 13:28:35 |
BANO | Да | 13:30:02 |
BANO | Просто обычно это решается тем что ты в своей бд рядом с постами хранишь людей и их права и тогда indieauth у тебя только за авторизацию отвечает | 13:31:07 |
BANO | Если ты хочешь сделать потом Твиттер и другие то это из хардкода переходит в разряд конфигурации | 13:31:49 |
Maxim Lebedev | In reply to Maxim Lebedev И мой вопрос был про то что правильно ли проверять ввод и из него делать какие-то выводы на клиенте, до ухода/редиректа в сервер IndieAuth. Без баз данных, без прочих хранилок, банально простым хардкодом:
if config.BaseURL == form.EnteredMe {
http.Redirect("https://auth.example.com/auth?scope=read+update+publish+draft...&me="+form.EnteredMe...)
} else {
http.Redirect("https://auth.example.com/auth?scope=profile&me="+form.EnteredMe...)
}
...
Вот этот момент меня смущает. Как будто хардкод это, конечно, валидно на первое время. Но может быть это не совсем правильно? | 13:31:08 |
Maxim Lebedev | In reply to BANO Если ты хочешь сделать потом Твиттер и другие то это из хардкода переходит в разряд конфигурации Почему? Я же прыгаю от me , а не от ссылок в твиттерах которые не почекать | 13:32:31 |
BANO | In reply to Maxim Lebedev Почему? Я же прыгаю от me , а не от ссылок в твиттерах которые не почекать Ну именно поэтому обычно делают пользователя в бд и к нему прикрепляют аккаунты в разных соцсетях | 13:33:19 |
BANO | Чтобы не прыгать от разных реализаций разных провайдеров | 13:34:02 |
24 Feb 2024 |
Andrew | Forwarded message from channel Tech Talk Социальная сеть BlueSky, которую основали бывший руководитель Twitter Jack Dorsey и создатель XMPP Jeremie Miller, и, которая недавно вышла из статуса "только для приглашенных", теперь поддерживает федерацию!
Что это значит для юзеров? Теперь каждый желающий может запустить собственный сервер Bluesky.
Такая модель не нова и напоминает нам о Mastodon с его децентрализованными серверами. Но в отличие от Mastodon, который использует открытый стандарт ActivityPub (он, кстати, используется во многих децентрализованных альтернативах разным сервисам - YouTube, Reddit и прочие), Bluesky идет своим путем с протоколом AT Protocol. К сожалению, на данный момент AT Protocol не совместим с ActivityPub, но разработчики усиленно трудятся над мостом для совместимости. По заверенеию Bluesky AT Protocol предоставляет больше возможностей для переноса данных и меньше контроля для администраторов серверов.
Получится ли у Bluesky добиться успеха с данным нововведением и не повторить путь Mastodon? Поделитесь своим мнением в комментариях | 06:55:00 |
Niko Tayev | In reply to Andrew Forwarded message from channel Tech Talk Социальная сеть BlueSky, которую основали бывший руководитель Twitter Jack Dorsey и создатель XMPP Jeremie Miller, и, которая недавно вышла из статуса "только для приглашенных", теперь поддерживает федерацию!
Что это значит для юзеров? Теперь каждый желающий может запустить собственный сервер Bluesky.
Такая модель не нова и напоминает нам о Mastodon с его децентрализованными серверами. Но в отличие от Mastodon, который использует открытый стандарт ActivityPub (он, кстати, используется во многих децентрализованных альтернативах разным сервисам - YouTube, Reddit и прочие), Bluesky идет своим путем с протоколом AT Protocol. К сожалению, на данный момент AT Protocol не совместим с ActivityPub, но разработчики усиленно трудятся над мостом для совместимости. По заверенеию Bluesky AT Protocol предоставляет больше возможностей для переноса данных и меньше контроля для администраторов серверов.
Получится ли у Bluesky добиться успеха с данным нововведением и не повторить путь Mastodon? Поделитесь своим мнением в комментариях и не повторить путь Mastodon? А это что значит? | 16:40:06 |
Niko Tayev | Download image.jpeg | 16:41:57 |
25 Feb 2024 |
Andrew | In reply to Niko Tayev
и не повторить путь Mastodon? А это что значит? То, что вероятно вскоре появится мост между всякими мастодонами, индивеб-сайтами с поддержкой ActivityPub и вот этой соц. сеточки, которая претендует на кусок пирога твиттера. Ни больше, ни меньше. | 00:26:34 |
Evgeny Kuznetsov | In reply to @telegram_51522276:t2bot.io То, что вероятно вскоре появится мост между всякими мастодонами, индивеб-сайтами с поддержкой ActivityPub и вот этой соц. сеточки, которая претендует на кусок пирога твиттера. Ни больше, ни меньше. Разве Bridgy Fed не уже? | 05:30:20 |
Andrew | In reply to @nekr0z:matrix.org Разве Bridgy Fed не уже? А я как-то хз 🤷 Но если уже, то тогда цель этого API скорее негативная - ограничивать, что отдавать. | 11:48:30 |
31 Mar 2024 |
| Д С changed their display name from Дмитрий Скрыльников to Д С. | 15:57:43 |
10 Apr 2024 |
| Max Cher joined the room. | 11:26:40 |
Max Cher | Ребята, привет! Есть какая-то страничка Get Started на русском про индивеб? Что это за зверь такой и всё такое 🙂 | 14:12:29 |
Andrew | Привет! Да, конечно, вот официальная переведённая https://indieweb.org/Main_Page-ru
Хотя, имхо, лучше читать оригинал с браузерным переводом | 14:14:18 |