React-native-app-auth: Network Error

Created on 20 Mar 2019  路  4Comments  路  Source: FormidableLabs/react-native-app-auth

Issue

I tried to create a react native app with OAuth Login in my Rails app.

I have this react native setup

const config = {
  issuer: 'http://app.domain.tld',
  clientId: '85bb84b9cb0528b1f64b7c77586507b3ca5e69b11abe36ae1e54e88a6150c21e',
  clientSecret: '0d3c0713437e0028a121a0c2294cc9a72f4eb5609416935a2860e20f176c7855',
  redirectUrl: 'com.domain://com.domain',
  responseType: 'code',
  scopes: [],
  dangerouslyAllowInsecureHttpRequests: __DEV__,
  // clientAuthMethod: 'post',
  serviceConfiguration: {
    authorizationEndpoint: 'http://app.domain.tld/oauth/authorize',
    tokenEndpoint: 'http://app.domain.tld/oauth/token',
    // revocationEndpoint: 'http://app.domain.tld/oauth/revoke'
  },
  additionalParameters: {
    approval_prompt: 'force'
  }

}

// use the client to make the auth request and receive the authState
try {
  const result = await authorize(config)
  // result includes accessToken, accessTokenExpirationDate and refreshToken
  console.log('result', result)
} catch (error) {
  console.log('error', error.message)
}

the oaut app looks like this:
image

When I press the button to login in my app, I get a browser window where I can login in my rails app and got redirected to the authorize page for the oauth app. After I authorize my app, I got redirected to the app with the message "Network error". With that message I can't find out whats wrong, maybe anyone can help me.

In the server logs I can see this:

Redirected to com.domain://com.domain?code=54f3b4c03ea3724522f9a7983e2ea1b9037336076cd52cb875f9654d5d79784a&state=8xmiicVcPKN980ZDZUwBnw

in the debugger-ui i got this:

error Error: Network error
    at createErrorFromErrorData (ReactNativeART.js:10)
    at ActivityIndicator.js:72
    at MessageQueue.__invokeCallback (ReactNativeART.js:472)
    at blob:http://localhost:8081/1fccf34b-97b0-4c42-81fa-f0e1391a3ad3:2358
    at MessageQueue.__guard (ReactNativeART.js:373)
    at MessageQueue.invokeCallbackAndReturnFlushedQueue (blob:http://localhost:8081/1fccf34b-97b0-4c42-81fa-f0e1391a3ad3:2357)
    at debuggerWorker.js:80

so i think there is something wrong. The app didn't make any further request to the server to obtain the access_token. Whats wrong?


Environment

  • Your Identity Provider: RailsApp with Doorkeeper
  • Platform that you're experiencing the issue on:

    • [ ] iOS

    • [x] Android

    • [ ] iOS but have not tested behavior on Android

    • [x] Android but have not tested behavior on iOS

    • [ ] Both

  • Are you using Expo, e.g. ExpoKit?

    • [x] No

    • [ ] Yes, I've _not_ ejected

    • [ ] Yes, but I have ejected to ExpoKit

    • [ ] Yes, but I have ejected to vanilla React Native

Most helpful comment

Hi @Electrofenster, try to use serviceConfiguration: { authorizationEndpoint: string; tokenEndpoint: string; } instead issuer in the config.

All 4 comments

Hi @Electrofenster, try to use serviceConfiguration: { authorizationEndpoint: string; tokenEndpoint: string; } instead issuer in the config.

Hi @Electrofenster - I will echo @itolegmysin 's suggestion. Could you omit the issuer from your config? If you add an issuer, the library will try to fetch the discovery document, which may be the cause of the error you're getting.

@itolegmysin I am facing the same issue. I have tried your suggestion but it is still not working. In iOS it is working fine with the issuer.

@itolegmysin Thank You! I am currently using Okta and am currently using a custom domain to serve my login page. Setting the auth and token endpoints manually did the trick.

Was this page helpful?
0 / 5 - 0 ratings