我正在尝试将YouTrack REST API集成到我的移动应用程序中,并且需要复制此应用程序的登录部分:https://github.com/JetBrains/youtrack-mobile
我的应用程序是基于Expo React Native构建的,但是我需要从中获取登录名的应用程序似乎在普通的React Native上。
很难理解这些概念的逻辑:
已经停留了很长时间了。任何帮助表示赞赏。
我的网络请求代码:
obtainTokenByCredentials() {
return this.obtainToken([
'grant_type=password',
`&username=${encodeURIComponent(this.state.username)}`,
`&password=${encodeURIComponent(this.state.password)}`,
`&scope=${encodeURIComponent('Hub YouTrack')}`,
'&access_type=offline'
].join(''));
}
obtainToken(body) {
return fetch('http://youtrack.XXX.com/hub/api/rest/oauth2/token', {
method: 'POST',
headers: {
'Accept': 'application/json, text/plain, */*',
//'Authorization': `Basic ${makeBtoa(`${this.state.serviceId}:${this.state.serviceSecret}`)}`,
'Content-Type': 'application/x-www-form-urlencoded',
},
body: body,
})
.then(async res => {
console.log(`Got result from YT: ${res && res.status}`);
console.log(`Response body: ${res && res._bodyText}`);
return res.json();
})
.then(res => {
if (res.error) {
throw res;
}
return res;
});
}