FormidableLabs / FormidableLabs/react-native-app-auth

Error: JSON deserialization error (Android)

Open
#752 8 comments 3 reactions 0 assignees View on GitHub
question stale
Dominant language
Java
Stars
2.3k
Forks
473
PR merge metrics
No merged PRs in 30d

Description

## Issue

I am getting `JSON deserialization error` with the following on Android **ONLY** - iOS is working as expected.

```
export const config = {
issuer: 'https://opentest.coros.com',
clientId: 'XXX',
clientSecret: 'XXX',
redirectUrl: `com.myapp.staging://oauth`,
scopes: ['userInfo', 'runData'],
serviceConfiguration: {
authorizationEndpoint: `https://opentest.coros.com/oauth2/authorize`,
tokenEndpoint: `https://opentest.coros.com/oauth2/accesstoken`,
revocationEndpoint: `https://opentest.coros.com/oauth2/deauthorize`,
}
}

const result = await authorize(config)
```

Response I am expecting (I got this via iOS as it works):
```
{
"refreshToken": "XXX",
"scopes": [],
"accessToken": "XXX",
"idToken": "",
"tokenAdditionalParameters": {
"openId": "XXX"
},
"tokenType": "",
"authorizeAdditionalParameters": {},
"accessTokenExpirationDate": "2022-08-19T10:24:57Z"
}
```
I have a hunch it's related to the `tokenAdditionalParameters` but I'm not 100% sure.

Worth noting I can't see any network request to COROS using Flipper.

---

## Environment

* **Your Identity Provider**: COROS (https://coros.com/)
* **Platform that you're experiencing the issue on**: `Android`
* **Are you using Expo?** No

Contributor guide

Open the contributing guide

Research direction

Start at the authorize(config) Android path and investigate the JSON deserialization failure around the COROS token response, especially tokenAdditionalParameters. Compare the Android handling with the working iOS response; done means authorization succeeds on Android and returns the expected token fields.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, react-native
Domain
authentication, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.