我们如何在React js中使用axios发送OAuth2.0

时间:2019-02-01 21:18:04

标签: reactjs oauth-2.0 axios

我正在处理一个身份验证问题,我必须为我的React App实现OAuth2.0身份验证。我可以通过基于Axios Promise的库使用该身份验证吗?

1 个答案:

答案 0 :(得分:1)

您将必须在标头中传递令牌。

见下文;

const instance = axios.create({
  baseURL: 'http://localhost/api/',
  headers: {'Authorization': 'basic '+ token}
});

instance.get('/path')
.then(response => {
    return response.data;
})

OR

获取令牌后,在浏览器中设置一个授权cookie。 浏览器将始终在对服务器的每个请求中发送授权cookie。您不必通过Axios get / post传递它。

更新:

为了从oAuth服务器获取访问令牌,请按以下方式传递client_id,client_secret,scope和grant_type;

var axios = require("axios");

axios.request({
  url: "/oauth/token",
  method: "post",
  baseURL: "http://sample.oauth.server.com/",
  auth: {
    username: "myUsername", // This is the client_id
    password: "myPassword" // This is the client_secret
  },
  data: {
    "grant_type": "client_credentials",
    "scope": "public"    
  }
}).then(respose => {
  console.log(respose);  
}); 

我假设您使用的是grant_type =“ client_credentials”,如果没有使用,则根据您使用的grant_type,还必须相应地更改请求参数。