【问题标题】:Authenticating wordpress from an external app Blazor WASM从外部应用程序 Blazor WASM 对 wordpress 进行身份验证
【发布时间】:2021-06-15 16:18:01
【问题描述】:

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

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

【问题讨论】:

  • 对不起,我打错了,Razor - 一定是 Blazor

标签: blazor webassembly wordpress-login


【解决方案1】:

这取决于几件事 -

  1. 您是否在单独的域中托管 WASM 应用程序?如果是这样,您将需要在服务器上配置 CORS。
  2. 您如何维护经过身份验证的会话?饼干? 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" }
        );
    }
}

这里将它添加到HttpClient 中的Program.cs

builder.Services.AddHttpClient(
    "Private.ServerAPI", 
    client => client.BaseAddress = new Uri("https://api.myapp.com")
).AddHttpMessageHandler<CorsAuthorizationMessageHandler>();

【讨论】:

  • 感谢您的回答!不幸的是,这并不是我想要的。 WASM 不是问题,问题是如何从 WP 站点获取身份验证确认
  • 我很困惑,所以你没有使用 Blazor WASM?如果您尝试在 PHP 中验证授权,只需使用 headers/session 变量。
  • 我的应用是 Blazor WASM。帐户存储在 WP 站点数据库中。用户注册在站点上进行,帐户存储在站点数据库中。有必要使用系统和站点数据库对 Blazor WASM 应用程序中的用户进行身份验证,之后,在成功授权的情况下,用户将能够在 Blazor WASM 应用程序中工作。
  • 好的,这意味着您必须在 PHP 端设置 JWT 生成。
  • 我只需要确认 WP 网站的登录名/密码,我正在寻找连接到网站、发送请求并获得回复的方法
猜你喜欢
  • 2021-11-05
  • 2021-07-24
  • 2021-05-09
  • 2021-04-30
  • 1970-01-01
  • 2023-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多