【问题标题】:Node WPAPI REST with JWT Authentication combined?节点 WPAPI REST 与 JWT 身份验证相结合?
【发布时间】:2022-03-02 16:12:18
【问题描述】:

我有一个带有 UI5 JavaScript 前端的 Wordpress REST-API 后端,它加载一些 Post-Data 以列出它们。

我想通过前端的简单登录表单来保护它。

要获取和创建帖子,我使用 Node-WPAPI 和基本身份验证,如下所示:

this._oWp = new WPAPI({
    endpoint: \'http://<domain>/wordpress/wp-json\',
    username: \'<user>\',
    password: \'<pass>\'
});

但是这种方法不符合我的需要,因为甚至可以使用 wrog 密码创建这个 WPAPI 实例。因此,我必须首先向受保护的路由发送请求,以了解我的密码是否正确。

要直接知道我的登录是否正确,我的想法是首先通过“WP-API 的 JWT 身份验证”获取令牌,这实际上有效,我得到了令牌。

但是这样做我的 WPAPI 端点导致错误\"jwt_auth_bad_auth_header, \"授权标头格式错误。\"

有没有办法将 WPAPI 与 JWT Auth 一起使用?或者,登录凭据如何通过 WPAPI 实例进行身份验证并在登录凭据错误时直接得到通知?

    标签: wordpress rest jwt wp-api


    【解决方案1】:

    我使用 WPAPI-Only-Approach 进行管理,因此只需向需要正确身份验证的 .users().me() 发送请求,即可证明用户输入了正确的凭据。否则,您会收到“未通过身份验证”错误。

    let oWp = new WPAPI({
        endpoint: <your_endpoint>,
        username: this._oAuth.getProperty("/Username"),
        password: this._oAuth.getProperty("/Password"),
    });
    
    oWp.users().me()
    .then( user => {
        this._oWp.setData(oWp);
        this._oRouter.navTo('home');
    }).catch( error => {
        console.log(error);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-17
      • 2016-03-24
      • 2019-01-01
      • 1970-01-01
      • 2019-03-01
      • 2021-12-21
      • 2019-12-08
      • 2016-04-24
      相关资源
      最近更新 更多