首页 > 解决方案 > Bearer 在 Angular 8 和 QT 中的授权问题

问题描述

我在使用不记名代码进行授权时遇到问题。

  getClients(page: number, size: any, session_id: any): Observable<any> {
    let header = new HttpHeaders()
      .append('Access-Control-Allow-Origin', '*')
      .append('Content-Type', 'application/json')
      .append('Accept', 'application/json')
      .append('Authorization', `Bearer ${localStorage.getItem('session_id')}`);

    return this.http.get(`${this.apiUrl}get_clients?page[number]=${page}&page[size]=${size}`,
      {
        responseType: 'json',
        headers: header,
      });
  }

Qt 代码很繁琐是什么

 p->socket->setHeader(QString("Allow").toLocal8Bit(),QString("GET, POST, OPTIONS").toLocal8Bit());
    p->socket->setHeader(QString("Access-Control-Allow-Origin").toLocal8Bit(),QString("*").toLocal8Bit());
    p->socket->setHeader(QString("Access-Control-Allow-Methods").toLocal8Bit(),QString("GET,POST,PUT,PATCH,DELETE,HEAD,OPTIONS").toLocal8Bit());
    p->socket->setHeader(QString("Access-Control-Allow-Headers").toLocal8Bit(),QString("Content-Type, Origin, Accept, Authorization, Content-Length, X-Requested-With").toLocal8Bit());

成功放置后,会为我生成一个密钥,直到我保留在会话中,但它在服务器出售的 corsy 上不起作用

OPTIONS /get_clients?page[number]=1&page[size]=50 HTTP/1.1
Host: 77.55.222.213:22111
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept: /
Accept-Language: pl,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Access-Control-Request-Method: GET
Access-Control-Request-Headers: access-control-allow-origin,authorization,content-type
Referer: http://localhost:4200/
Origin: http://localhost:4200
Connection: keep-alive

但是外观看起来像图片。如何在 QT Creator 中共享我有令牌的消息以及授权:承载服务器的软件名称。在邮递员中它可以工作,我登录,我复制密钥并将其粘贴到授权承载令牌中,它在那里正常工作。

标签: angularqthttphttp-headersapi-authorization

解决方案


推荐阅读