uport-project / uport-mobile

uPort mobile app
https://uport.me
GNU General Public License v3.0
76 stars 28 forks source link

Unable to login to uport - rinkeby.infura.io - 403 #212

Open SouravVoG opened 4 years ago

SouravVoG commented 4 years ago

Looks like the infura service is down or disconnected. It seems this problem exists from a couple of days.

Response from rinkeby.infura.io - 403:

{"jsonrpc":"2.0","id":1,"error":{"code":-32600,"message":"project ID is required","data":{"reason":"project ID not provided","see":"https://infura.io/dashboard"}}}

mirceanis commented 4 years ago

Where are you seeing this error? in the app or a library?

SouravVoG commented 4 years ago

I am facing the issue when I am scanning the bar code using uport app (in my web application). I have added an image for reference. Screenshot

mirceanis commented 4 years ago

I'm trying to narrow down this issue, but you have not shared any details about your setup other than the error message, which is not actually coming from the app.

It looks like there may be a problem with the website, or rather with one of the libraries you use on the website. I'm assuming you are using uport-connect or uport-credentials.

In that case, it would be helpful to know which version of which library you are using. Also, take a look at this issue in uport-connect: https://github.com/uport-project/uport-connect/issues/294#issuecomment-577584735

If you find that helpful, please close this issue. If not, share as many details as possible.

SouravVoG commented 4 years ago

Hi Mircea,

I am using "uport-connect": "^0.7.3". The web application was working fine. I am facing this issue from past couple of days. I had simply used react-uport-box boiler plate codes, simply followed the instructions in the link(https://www.youtube.com/watch?v=h7J-SYUOqeA).

I can see the same issue with Zug Digital Identity project as well(https://stadtzugid.zg.ch).

The temporary fix for issue #294 didn't work as well.

Also, I can't see my app in 'https://appmanager.uport.me/'(my web application was still working irrespective of that). I am now unable to create a new app in the app manager as well.

I am surprised what changed suddenly.

mirceanis commented 4 years ago

Thanks for sharing, that tutorial is very old and I'm not sure how much of it still applies. I'll have to go through it and through the react-uport-box to understand what it's doing.

I suspect the core issue is the fact that infura discontinued their legacy API and the libraries involved were defaulting to that legacy API. While the more recent identity libraries can be configured to use this new API, the old ones probably do not provide neat interfaces for that.

SouravVoG commented 4 years ago

I think something like this happened earlier as well. Kindly have a look at this issue. https://github.com/uport-project/uport-connect/issues/140

If I just change the network to Kovan, keeping everything as it is now, it works.

Gershon-A commented 4 years ago

Hello All. I'm starting to face the same issue. "web3": "0.20.3" var providers = new ethers.providers.InfuraProvider(''+ configs.infuraProvider +'', configs.infuraAccessToken); The response show like the connection was established but i still get 403

InfuraProvider {
  _network:
   { name: 'ropsten',
     chainId: 3,
     ensAddress: 'XXXXXXXXXXXXXXXX',
     _defaultProvider: [Function] },
  ready:
   Promise {
     { name: 'ropsten',
       chainId: 3,
       ensAddress: 'XXXXXXXXXXXXXXXX',
       _defaultProvider: [Function] } },
  _lastBlockNumber: -2,
  _balances: {},
  _events: [],
  _pollingInterval: 4000,
  _emitted: { block: -2 },
  _fastQueryDate: 0,
Gershon-A commented 4 years ago

OK, in my case following was solved this issue: change var providers = new ethers.providers.InfuraProvider(''+ configs.infuraProvider +'', configs.infuraAccessToken); to var providers = new ethers.providers.JsonRpcProvider(configs.infuraUrl); where configs.infuraUrl=https://ropsten.infura.io/v3/xxxxxxxxxxxxxx

Nayan-Das commented 4 years ago

I am facing the same issue with Rinkeby when I am trying to create app using uPort app manager. Getting error "Project Id is required". Could you please check if it works or should I try old system ropsten, https://drive.google.com/file/d/1d9x0SESKEnnZ1HpV1E7gziTO6qKq9KwO/view?usp=sharing

mirceanis commented 4 years ago

Looks like the app manager sample code wasn't updated to reflect the new requirements.

If you only use rinkeby, you can adapt the sample code in step 2 to something like this:

Server app (uport-credentials)

import { Credentials } from 'uport-credentials'

import { Resolver } from 'did-resolver'
import getResolver from 'ethr-did-resolver'
const providerConfig = { rpcUrl: 'https://rinkeby.infura.io/<YOUR INFURA PROJECT ID>' }

const credentials = new Credentials('<application Name>', {
    privateKey: "<private Key>",
    network: "rinkeby",
    resolver: new Resolver(getResolver(providerConfig))
})

If you want to use multiple networks at the same time, you can use the multi-network providerConfig in ethr-did-resolver

Another reference to follow is the uport-credentials config

Client app (uport-connect)

import { Connect } from 'uport-connect'

const uportConnect = new Connect('<application Name>', {
  network: "rinkeby",
  ethrConfig: {
    rpcUrl: 'https://rinkeby.infura.io/v3/<YOUR INFURA PROJECT_ID>'
  }
})

This is actually a workaround since the uport-connect library hasn't been updated to the latest requirements of providing a resolver. This issue is being tracked in https://github.com/uport-project/uport-connect/issues/294

cc @gbugyis