作为了解OAuth2和使用react-native进行持久登录的一部分,我正在使用找到here的OAuth2服务器示例来了解如何从服务器发送信息和请求验证。
目前,我只是希望能够将access_token记录到控制台,因为我认为我可以自己构建这些知识。我似乎无法找到一个如何正确获取的理想示例。
我认为我没有收到的部分是发送header
和body
信息。
export default class App extends Component {
goGetToken() {
return fetch('http://localhost:3000/oauth/token/?grant_type=password&username=pedroetb&password=password', {
method: 'POST',
headers: {
'Authorization': 'Basic YXBwbGljYXRpb246c2VjcmV0',
'Content-Type': 'application/application/x-www-form-urlencoded',
},
}).then(response => response.json())
.then(responseJson => {
console.log(responseJson.access_token);
return responseJson.access_token;
})
.catch(error => {
console.error(error);
});
}
componentDidMount() {
this.goGetToken();
}
render() {
return(
<View></View>
)
}
}
附带的自述文件建议如下,但我似乎无法找到正确发送标头/提取的示例?
### Obtaining a token
To obtain a token you should POST to `http://localhost:3000/oauth/token`.
#### With *password* grant
You need to include the client credentials in request headers and the user credentials and grant type in request body:
* **Headers**
* **Authorization**: `"Basic " + clientId:secret base64'd`
* (for example, to use `application:secret`, you should send `Basic YXBwbGljYXRpb246c2VjcmV0`)
* **Content-Type**: `application/x-www-form-urlencoded`
* **Body**
* `grant_type=password&username=pedroetb&password=password`
* (contains 3 parameters: `grant_type`, `username` and `password`)
答案 0 :(得分:1)
我目前正在使用React本地的OAuth 2,我发现了一个非常好的博客。它还有一个github回购供参考。希望它可以帮到你。