# Подключение SSO: ошибка входа sso\_login

**URL:** https://meta.discourse.org/t/connect-sso-login-error-sso-login/309413
**Category:** SSO
**Created:** [25.Май.2024 23:20:03 UTC](https://meta.discourse.org/t/connect-sso-login-error-sso-login/309413 "2024-05-25T23:20:03Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![BrainFried](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/brainfried/32/388499_2.png) [@BrainFried](https://meta.discourse.org/u/BrainFried)
#### Post date: [25.Май.2024 23:20:03 UTC](https://meta.discourse.org/t/connect-sso-login-error-sso-login/309413/1 "2024-05-25T23:20:03Z")

</div>

Я провел несколько часов исследований по своей проблеме и думаю, что уже близко к решению, но, возможно, мне нужен небольшой толчок в правильном направлении.

По сути, я пытаюсь интегрировать Discourse как headless-решение в свой React-проект, который уже содержит аутентифицированных пользователей в собственной базе данных.

Для этого, когда пользователь входит в систему на странице React, будет выполняться SSO для аутентификации пользователя через API Discourse, чтобы мы могли вызывать соответствующие функции и так далее.

Сначала я делаю запрос к URL-адресу Discourse и предотвращаю любые перенаправления следующим образом:

```plaintext
const response = await fetch('https://forum.mysite.com/session/sso', {
    method: 'GET',
    redirect: 'manual', // Предотвращение автоматического следования перенаправлениям
  });

```

Затем я выполняю всю процедуру валидации и отправляю Payload с информацией о пользователе на бэкенд, используя:

```plaintext
const loginResponse = await fetch(newurl.toString(), {
    method: 'GET',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    },
    redirect: 'manual',
  });

```

Форматирование, подпись и прочее выглядят правильно. Но я получаю ошибку. Поэтому я закомментировал этот код, скопировал сгенерированный URL в браузер, чтобы посмотреть, что происходит, и получил следующее:

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/1/3/f137f08559d26cb806ff2384ededddf40e30fdeb.png)

```plaintext
Подробный лог SSO: Nonce неверен, был сгенерирован в другой сессии браузера или истек add_groups: admin: avatar_force_update: avatar_url: bio: card_background_url: confirmed_2fa: e 

```

После некоторых исследований я думаю, что эти ответы близки к тому, чтобы помочь мне, но я все еще не совсем понимаю, что нужно изменить в моей настройке. Кроме того, параметр force\_https, похоже, больше нельзя изменить (я даже не уверен, что он делает):

> [@SSO incorrect nonce](https://meta.discourse.org/t/sso-incorrect-nonce/228925/3):
>
> I currently have this exact same problem

> [@403 Error when changing any settings after enabling force\_https with proxy](https://meta.discourse.org/t/403-error-when-changing-any-settings-after-enabling-force-https-with-proxy/132246/4):
>
> I think you are not passing the https through correctly. Search here for solutions.

Мне кажется, что проблема может быть связана с разными сессиями браузера, но я не уверен. Думаю, я уже близко к решению, мне нужен лишь небольшой толчок. Любая информация будет полезна. Спасибо!

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [26.Май.2024 00:14:45 UTC](https://meta.discourse.org/t/connect-sso-login-error-sso-login/309413/2 "2024-05-26T00:14:45Z")

</div>

> [@BrainFried](#):
>
> Мне кажется, это может быть вызвано различиями в сессиях браузеров.

Похоже, это именно та проблема. Вы сможете обойти её, отключив настройку сайта `discourse_connect_csrf_protection` (в исходном тексте было перечёркнуто «включить»). Это скрытая настройка сайта, по умолчанию установленная в значение `true`. Вам потребуется включить её через консоль Rails.

Она используется в коде здесь:

> <https://github.com/discourse/discourse/blob/581dbca97f2b55c9bbbe40dc3b58a9df7409d77f/app/models/discourse_connect.rb#L48-L54>

---

<div class="post-metadata">

### Author: ![BrainFried](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/brainfried/32/388499_2.png) [@BrainFried](https://meta.discourse.org/u/BrainFried)
#### Post date: [26.Май.2024 02:54:05 UTC](https://meta.discourse.org/t/connect-sso-login-error-sso-login/309413/3 "2024-05-26T02:54:05Z")

</div>

Если по умолчанию оно установлено в true, я полагаю, вы имеете в виду, что мне следует установить его в false. Я сейчас попробую.

---

<div class="post-metadata">

### Author: ![BrainFried](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/brainfried/32/388499_2.png) [@BrainFried](https://meta.discourse.org/u/BrainFried)
#### Post date: [26.Май.2024 02:59:50 UTC](https://meta.discourse.org/t/connect-sso-login-error-sso-login/309413/4 "2024-05-26T02:59:50Z")

</div>

Похоже, это решило проблему. Спасибо за информацию! Я бы, наверное, никогда сам не догадался, lol

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [25.Июнь.2024 03:00:22 UTC](https://meta.discourse.org/t/connect-sso-login-error-sso-login/309413/5 "2024-06-25T03:00:22Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
