Skip to content
This repository has been archived by the owner on Mar 15, 2024. It is now read-only.

When creating a new identity, the object Identity returned should have an unique identifier #134

Closed
rauljareno opened this issue Jun 8, 2020 · 9 comments
Labels
Milestone

Comments

@rauljareno
Copy link
Contributor

rauljareno commented Jun 8, 2020

In some workflows, we need to create an identity and share this id via QR code. To identify the user, the Identity object returned by the library should have a unique identifier, a random string that could be used again when the user loads the identity instead of creating another one with different identifier so the system can follow it. Right now, the identity object has a method toString() that returns a json with only the claims and tickets from that identity, that in the moment of creation is always empty and the same.

@ed255
Copy link
Contributor

ed255 commented Jun 8, 2020

Internally the identity has an identifier (Issuer.ID() from go-iden3-core). We should expose this method in the mobile Identity to fulfill this request.

@arnaubennassar
Copy link
Contributor

As of now we are switching to identities that have multiple identifiers. So the concept of an identity identifier is on the air. In the future probably we will ad methods to fetch all the identifiers of the identity.

Until then I think it's better to don't use any Identity identifier.

@rauljareno
Copy link
Contributor Author

@arnaubennassar how could we then differentiate now one identity from another created with the same alias in another wallet for example? Should the wallet create a random string as an identifier and link it to the identity created by the library? Just to know how to proceed in the meantime. Thanks in advance :)

@arnaubennassar
Copy link
Contributor

For sure we need some unique identifier for the Identity. It's just that as of now we are redefining the concept of Identity.

As of now the concept of having the same identity in multiple devices/wallets is far away in the roadmap.

If you need to have this I will expose a method so you can get the identifier, but keep in mind that this will change in the sort term

@rauljareno
Copy link
Contributor Author

I agree that having the same identity in multiple devices/wallets is not for now a requirement. The issue is how to handle different identities and how to communicate to them from the side of the issuer or the verifier. This is needed for some project we are now involved, I leave the decision of how to handle this when this identifier will change in the short term to your knowledge on the field. Maybe instead of exposing this method, could be a good idea to create a different id that would not change so soon if the change is going to disable this functionality, not sure.

@arnaubennassar
Copy link
Contributor

Ok, I will add a method to get the identifier: #139
But maybe, the alias could be saved on the wrapper side and force them to be unique (I think that this is already done, since the alias is used to generate the path and in the Go side it's checked if the directory is emty, so having two alias with the same name will produce error). This way the wallet could use the alias as an identifier that will be more human friendly (the identifier that we use is quite ugly for humans)

@rauljareno
Copy link
Contributor Author

The problem is not on the same device, as you say, the alias could be enough for same device, but this id needs to be shared with the issuer and needs to be unique in the whole system, so two devices with same alias should have two unique ids

@rauljareno
Copy link
Contributor Author

rauljareno commented Jun 15, 2020

The identifier doesn't need to be human readable as it would be shared with the issuer via QR code

@arnaubennassar arnaubennassar added this to the phase3 milestone Jun 16, 2020
@arnaubennassar
Copy link
Contributor

Closing in favor of #139

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

3 participants