使用react-native

时间:2017-11-21 13:42:05

标签: node.js react-native oauth-2.0 fetch-api

作为了解OAuth2和使用react-native进行持久登录的一部分,我正在使用找到here的OAuth2服务器示例来了解如何从服务器发送信息和请求验证。

目前,我只是希望能够将access_token记录到控制台,因为我认为我可以自己构建这些知识。我似乎无法找到一个如何正确获取的理想示例。

我认为我没有收到的部分是发送headerbody信息。

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`)

1 个答案:

答案 0 :(得分:1)

我目前正在使用React本地的OAuth 2,我发现了一个非常好的博客。它还有一个github回购供参考。希望它可以帮到你。

https://medium.com/@alexmngn/the-essential-boilerplate-to-authenticate-users-on-your-react-native-app-f7a8e0e04a42