有人可以解释SERVICE ID和SERVICE SECRET背后的逻辑吗?

时间:2019-02-19 09:13:25

标签: react-native networking expo

我正在尝试将YouTrack REST API集成到我的移动应用程序中,并且需要复制此应用程序的登录部分:https://github.com/JetBrains/youtrack-mobile

我的应用程序是基于Expo React Native构建的,但是我需要从中获取登录名的应用程序似乎在普通的React Native上。

很难理解这些概念的逻辑:

  • 如何仅授权知道用户名和密码的人?
  • 我的应用应该以某种方式从API请求服务ID和服务机密吗?

已经停留了很长时间了。任何帮助表示赞赏。

我的网络请求代码:

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;
    });
}

0 个答案:

没有答案