0

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

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

4

1 回答 1

0

这将取决于几件事 -

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

您需要在authorization所有 HTTP 请求中包含标头,以确保用户仍然有权访问您的应用程序。幸运的是,使用 Blazor WASM 有一种非常简单的方法,可以使用AuthorizationMessageHandler. 这是我个人在自己的 Blazor WASM 应用程序中成功使用此确切代码的示例:

public class CorsAuthorizationMessageHandler : AuthorizationMessageHandler
{
    public CorsAuthorizationMessageHandler(IAccessTokenProvider provider, 
       NavigationManager navigation) : base(provider, navigation)
    {
        ConfigureHandler(
            authorizedUrls: new[] { "https://api.myapp.com" }
        );
    }
}

这是它被添加到HttpClientin Program.cs

builder.Services.AddHttpClient(
    "Private.ServerAPI", 
    client => client.BaseAddress = new Uri("https://api.myapp.com")
).AddHttpMessageHandler<CorsAuthorizationMessageHandler>();
于 2021-03-18T20:13:32.523 回答