#blazor #webassembly #wordpress-login
Вопрос:
Есть сайт на wordpress. Регистрация пользователей осуществляется на сайте, учетные записи хранятся в базе данных сайта. Необходимо аутентифицировать пользователей из внешнего приложения (Blazor WASM) с использованием системы и базы данных сайта, после чего, в случае успешной авторизации, пользователь сможет работать во внешнем приложении.
Как это можно сделать с помощью http-запросов?
Комментарии:
1. Извините, я неправильно набрал, Бритва — должно быть, это Блейзор
Ответ №1:
Это будет зависеть от нескольких вещей —
- Вы размещаете приложение WASM на отдельном домене? Если это так, вам нужно будет настроить CORS на сервере.
- Как вы поддерживаете аутентифицированный сеанс? Печенье? Веб-токены JSON (JWT)? Пользовательский токен доступа или идентификатор?
Вам нужно будет включить authorization
заголовок со всеми HTTP-запросами, чтобы убедиться, что пользователь по-прежнему авторизован для доступа к вашему приложению. К счастью, с Blazor WASM есть очень простой способ добавить этот заголовок ко всем исходящим HTTP-запросам, используя пользовательскую реализацию AuthorizationMessageHandler
. Вот пример того, как я лично успешно использую этот точный код в своем собственном приложении Blazor WASM:
public class CorsAuthorizationMessageHandler : AuthorizationMessageHandler
{
public CorsAuthorizationMessageHandler(IAccessTokenProvider provider,
NavigationManager navigation) : base(provider, navigation)
{
ConfigureHandler(
authorizedUrls: new[] { "https://api.myapp.com" }
);
}
}
Вот это добавляется в HttpClient
Program.cs
:
builder.Services.AddHttpClient(
"Private.ServerAPI",
client => client.BaseAddress = new Uri("https://api.myapp.com")
).AddHttpMessageHandler<CorsAuthorizationMessageHandler>();
Комментарии:
1. Спасибо за ответ! К сожалению, это не совсем то, что я ищу. Проблема не в WASM, проблема в том, как получить подтверждение аутентификации с сайта WP
2. Тогда я в замешательстве, значит, вы не используете Blazor WASM? Если вы пытаетесь проверить авторизацию в PHP, просто используйте переменные заголовков/сеанса.
3. Мое приложение-Blazor WASM. Учетные записи хранятся в базе данных сайта WP. Регистрация пользователей осуществляется на сайте, учетные записи хранятся в базе данных сайта. Необходимо аутентифицировать пользователей из приложения Blazor WASM с помощью системы и базы данных сайта, после чего, в случае успешной авторизации, пользователь сможет работать в приложении Blazor WASM.
4. Хорошо, это означает, что вам придется настроить генерацию JWT на стороне PHP.
5. Мне нужно только подтверждение логина/пароля с сайта WP, я ищу способ подключиться к сайту, отправить запрос и получить ответ