!sFVzrChnVxmGgYiiOm:matrix.org

[matrix] Русская техподдержка

371 Members
Помощь сообщества в настройке Matrix-серверов и клиентов; решении проблем, связанных с Матриксом. Это не официальный канал техподдержки, поэтому тут никто никому ничего не должен. Оскорбления и неуважительное отношение к участникам комнаты - караются баном.77 Servers

Load older messages


SenderMessageTime
12 Oct 2018
@progserega:rsprim.ruprogseregaположил к себе в закладки11:23:44
@progserega:rsprim.ruprogserega
In reply to @murz:ru-matrix.org
во скрипт https://github.com/xwiki-labs/synapse_scripts
насколько оно зависит от версии синапса? Т.е. может быть такая ситуация, что оно наломает дров?
11:53:24
@murz:ru-matrix.orgAlexey Murz Korepovне знаю, но ситуация вполне вероятна ;) так что бекапы крайне рекомендую сделать ;)11:54:42
@progserega:rsprim.ruprogseregaспасибо! 🙂11:59:49
@murz:ru-matrix.orgAlexey Murz Korepovкстати, меня тут давно интересует вопрос - что будет происходить с федерацией если вдруг синапс поднять с бекапом 2-3 дневной давности? с чужих комнат эвенты как бы прилетят норм, а те которые твой сервак генерил и всех рассылал - они останутся привидениями висеть? ;)12:01:17
@progserega:rsprim.ruprogseregaну вот сегодня мой сервак "выпал" из федерации из-за ДНС и сообщения с него улетели с неверными метками в комнату и перемешались с другими сообщениями. Наверное не совсем подобрая ситуация, но...12:30:26
@progserega:rsprim.ruprogseregaя бы сказал даже в такой ситуации как-то странно отработалось12:31:35
@progserega:rsprim.ruprogserega

Разбираюсь с python-апи - не могу понять, что есть auth_body:

def delete_device(self, auth_body, device_id): 

Что ему передавать в виде type для доступа по токену?

14:44:08
@progserega:rsprim.ruprogserega

как я понимаю, логика должна быть такая:

  1. логинимся по паролю
  2. получаем токен
  3. делаем что хотим (в том числе низкоуровневым АПИ), передавая в качестве аутентификации полученный на втором шаге токен
14:45:20
@progserega:rsprim.ruprogserega

пример в документации ничего не проясняет:

{
  "auth": {
    "example_credential": "verypoorsharedsecret",
    "session": "xxxxx",
    "type": "example.type.foo"
  }
}
14:46:43
@ma1uta:ru-matrix.orgma1uta
In reply to @murz:ru-matrix.org
кстати, меня тут давно интересует вопрос - что будет происходить с федерацией если вдруг синапс поднять с бекапом 2-3 дневной давности? с чужих комнат эвенты как бы прилетят норм, а те которые твой сервак генерил и всех рассылал - они останутся привидениями висеть? ;)
Клиент отображает сообщения в порядке их получения серверов. То есть вылезет старая переписка как новая :)
14:46:44
@ma1uta:ru-matrix.orgma1utaС удалением устойств хитро.14:47:09
@ma1uta:ru-matrix.orgma1utaНа самом деле ты можешь отправить с пустым auth, сервер вернет ошибку с описанием чего он хочет.14:47:37
@progserega:rsprim.ruprogserega
In reply to @ma1uta:ru-matrix.org
С удалением устойств хитро.
список я получил, осталось только удалить 🙂
14:47:43
@ma1uta:ru-matrix.orgma1utaДля удаления списка есть второй метод, который пачкой удаляет устройства14:48:09
@ma1uta:ru-matrix.orgma1utaКак правило, в первый запрос на удаление устройства туда передаётся пароль от аккаунт. Потом можно без auth отправлять.14:48:56
@progserega:rsprim.ruprogseregaда, но ему тоже надо как-то авторизацию передать. Да и мне, по идее, нужно удалить все, кроме одного...14:49:06
@ma1uta:ru-matrix.orgma1utaКогда ты удаляешь устройства с риота, то первый раз вводишь пароль, а потом уже ничего вводить не надо.14:49:37
@ma1uta:ru-matrix.orgma1utaВот этот пароль Риот и отправляет в auth.14:50:06
@progserega:rsprim.ruprogserega
   client = MatrixClient(conf.server)
    token = client.login(username=conf.username, password=conf.password,device_id=conf.device_id)
    
    auth_body={}
    auth_body["session"]=client.api.token
    auth_body["type"]="m.login.password"
    
    response=client.api.get_devices()
    
    print("len(devices)=%d"%len(response["devices"]))
    for device in response["devices"]:
      if device["device_id"]!="HSDNLQODDJ":
        print("delete device: %s"%device["device_id"])
        response=client.api.delete_device(auth_body=auth_body,device_id=device["device_id"])
        sys.exit(0)

как-то я не так формирую структуру auth_body

14:50:59
@ma1uta:ru-matrix.orgma1utaЭто сделано специально, чтобы избежать ситуации, когда токен утек на сторону, злоумышленник не сможет удалить все устройства настоящего пользователя и оставить свои.14:51:11
@progserega:rsprim.ruprogseregaхм14:51:23
@ma1uta:ru-matrix.orgma1utaА, это я туплю.14:53:53
@ma1uta:ru-matrix.orgma1utaСделай запрос без auth, сервер вернет тебе session id и список того, что он хочет.14:54:13
@ma1uta:ru-matrix.orgma1utaИ вторым запросом ты передаешь этот session id и нужные серверу credentials.14:54:39
@ma1uta:ru-matrix.orgma1uta
In reply to @ma1uta:ru-matrix.org
Сделай запрос без auth, сервер вернет тебе session id и список того, что он хочет.
Вернет вместе с 401 ошибкой.
14:54:53
@progserega:rsprim.ruprogserega

в примере дано такое:

{
  "auth": {
    "example_credential": "verypoorsharedsecret",
    "session": "xxxxx",
    "type": "example.type.foo"
  },
  "devices": [
    "QBUAZIFURK",
    "AUIECTSRND"
  ]
}

меня ставит в ступор example_credential - что это? Реальный параметр "имя_ключа для пароля"?

14:55:01
@ma1uta:ru-matrix.orgma1utaНет, это пример. :)14:55:23
@ma1uta:ru-matrix.orgma1uta В зависимости от type надо в auth добавлять разные поля 14:55:53
@progserega:rsprim.ruprogseregaааа14:57:02

Show newer messages


Back to Room ListRoom Version: