2017-05-31 70 views
5

我在离子2中使用库ng2-signalr。问题是我不知道如何设置授权标头。我有搜索,但没有找到任何示例。如何在ng2-signalr中设置授权标题?

我的代码连接到服务器集线器。

let options: IConnectionOptions = { qs:{userId:1}, url: "http://192.168.0.211:44337"}; 

     console.log("Stage 1"); 
      //Header for 'this.singalR.connect' 
     this.signalR.connect(options) 
      .then((connection) => {      

       console.log("Client Id: " + connection.id);      
      }, (err) => { 
       console.log("SignalR Error: " + JSON.stringify(err)); 
      }); 

如何设置下面的标题?

var headers = new Headers({ 
      'Content-Type': "application/json", 
      "Authorization": 'Bearer ' + accessToken //accessToken contain bearer value. 
     }); 

库:ng2-signalr

更新1

这里的链接Query String Solution。解决方法是通过authorization tokenqs中提及并进行相应处理。但我想设置在标题中,所以这个解决方案不适合我。还有一个原因,因为我有另一个客户端(Simple angularjs signalr),当我像下面那样设置标题时,它可以正常工作。

$.signalR.ajaxDefaults.headers = { Authorization: //here set header}; 

注:执行授权相同的代码工作正常,因为我并不需要设置授权头之前。

+0

你尝试在QS设置令牌? –

+0

@suraj还没有.oky我试过,但没有任何意义,在查询字符串'qs'中设置标题值。 –

+0

https://stackoverflow.com/questions/21196266/signalr-authentication-with-javascript-client –

回答

1

它目前(v2.0.4)没有在ng2-signalr中实现。
作为一种变通方法,您可以尝试:

declare var $: any; 
$.signalR.ajaxDefaults.headers = new Headers({ 
     'Content-Type': "application/json", 
     "Authorization": 'Bearer ' + accessToken //accessToken contain bearer value. 
});