首页 > 解决方案 > 您如何生成用于在 Angular 4 中创建 WordPress 用户的令牌

问题描述

有人可以解释一下:

let header = new Headers({"Authorization": "Bearer "+token});

我应该如何获得令牌的价值?

我在用wp-api-angular

这是一个代码示例:

signUpForm() {
  const headers = new Headers({
    'Authorization': 'Bearer' + this.token
  });

  this.wpApiUsers.create(
    this.newUser,
    { headers: headers })
    .toPromise()
    .then(response => {
      console.log(response);
    }
  );

}

我现在有这个:

signUpForm() {
  this.http.post('https://website.com/wp-json/jwt-auth/v1/token', {
    username: 'admin',
    password: 'password'
  }).subscribe(data => {
    if (data['token']) { // if token is returned
      this.token = data['token'];

      const headers = new Headers({
        'Authorization': 'Bearer' + this.token
      });

      const options = new RequestOptions({ headers: headers });

      this.http.post(
        'https://website.com/wp-json/wp/v2/users',
        this.newUser,
        options
      );

    }

  });


}

但是现在我收到了这个错误:

'{ headers: Headers; 类型的参数 }' 不可分配给“RequestOptionsArgs”类型的参数。属性“标题”的类型不兼容。类型“标题”不可分配给类型“标题”。存在具有此名称的两种不同类型,但它们不相关。“标题”类型中缺少属性“键”。const headers: 标头

标签: wordpressangular5wp-api

解决方案


该令牌允许您有权访问未经身份验证的用户无法访问的数据,它是在您成功登录时生成的。

您首先需要请求令牌(登录),因为您必须使用用户名和密码执行 POST 请求,响应将具有您应该保存并在需要授权的其他请求之后使用的令牌。

this.http.post('http://YOUR_DOMAIN/wp-json/jwt-auth/v1/token', {
    username: this.user.login,
    password: this.user.password
  }).subscribe(
    (data) => {
      if (data['token']) { // if token is returned
        console.log(data['token']); // Token
      }
    }, (error) => {} // Authentication errors
);

完整教程:https ://www.sitepoint.com/angular-wordpress-wp-api-angular/


推荐阅读