从外部应用程序 Blazor WASM 对 wordpress 进行身份验证

时间:2021-03-18 09:23:20

标签: blazor webassembly wordpress-login

wordpress 上有一个网站。 用户注册在站点上进行,帐户存储在站点数据库中。 需要使用系统和站点数据库从外部应用程序 (Blazor WASM) 对用户进行身份验证,之后,如果授权成功,用户将能够在外部应用程序中工作。

如何使用 http 请求来做到这一点?

1 个答案:

答案 0 :(得分:0)

这取决于一些事情 -

  1. 您是否在单独的域中托管 WASM 应用程序?如果是这样,您将需要在服务器上配置 CORS。
  2. 您如何维护经过身份验证的会话?饼干? JSON 网络令牌 (JWT)?自定义访问令牌或 ID?

您需要在所有 HTTP 请求中包含 authorization 标头,以确保用户仍然有权访问您的应用。幸运的是,使用 Blazor WASM,有一种非常简单的方法可以使用 AuthorizationMessageHandler 的自定义实现将此标头添加到所有传出 HTTP 请求。这是我个人在我自己的 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>();