wordpress上有一个网站。用户注册在网站上执行,帐户存储在网站数据库中。有必要使用系统和站点数据库对来自外部应用程序(Blazor WASM(的用户进行身份验证,之后,如果授权成功,用户将能够在外部应用程序中工作。
如何使用http请求实现这一点?
这将取决于一些事情-
- 您是否在单独的域上托管WASM应用程序?如果是这样,您将需要在服务器上配置CORS
- 您是如何维护经过身份验证的会话的?饼干?JSON Web令牌(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" }
);
}
}
这是它被添加到Program.cs
:中的HttpClient
中
builder.Services.AddHttpClient(
"Private.ServerAPI",
client => client.BaseAddress = new Uri("https://api.myapp.com")
).AddHttpMessageHandler<CorsAuthorizationMessageHandler>();