Я пытаюсь выполнить единый вход с использованием Auth0 для wordPress и из моего собственного приложения. поток упомянут ниже.
Изображение добавлено сюда (мало репутации), поэтому не могу опубликовать
Пользователь вводит имя пользователя и пароль в приложении, данные отправляются на сервер, который аутентифицирует пользователя с помощью API auth0 и отправляет обратно токен.
Я установил auth0 SSO plugin2 из GitHub в Discourse, и все идентификаторы клиента, секреты клиентов добавлены в плагин.
Я хочу знать, кто будет выполнять SSO в случае Discourse, когда я вошел в свое приложение.
Для WordPress мы использовали следующий метод.
<form *ngIf="userService.isAuthenticated()" ngNoForm action="http://xx.xx.xx.xx/index.php?auth0=implicit&client_id=xxxxxxxxxxxxxxxxxxxxxxxxx&connection=xxxxxxxxxx"
method="post">
<input class="hidden" type="text" id="token" name="token" value="{{tokenValueIsHereReturnedbyAuth0Authentication}}" />
<input class="hidden" type="text" id="redirect_to" name="redirect_to" value="http://xx.xx.xx.xx/index.html" />
<input class="btn btn-primary pull-right" type="submit" value="View" />
</form>
Итак, как сделать подобное в дискурсе?
Я пробовал следующее
Однако я не смог завершить это, так как не знаю, что это
https://somesite.com/sso?sso=PAYLOAD&sig=SIG
PAYLOAD и SIG
Обновлять:
Полезная нагрузка, которую я думаю: то, что Auth0 дал мне как access_token, - это полезная нагрузка, которая закодирована как Base64
(с использованием: base64encode dot org), а SIG - это хэш HMAC-SHA256 полезной нагрузки с использованием sso_secret в качестве ключа и полезной нагрузки в кодировке Base64 (точка свободного форматирования com слэш hmac-генератор)