Sign in
The Developer Portal is the first application to authenticate people through DiligenceID rather than through a password and a profile. There is nothing to register for: you prove one thing about yourself, and the portal makes an account out of the answer.
What actually happens
The portal names a verification policy — developer-portal-login — and DiligenceID does the rest. The portal
does not construct the request, choose which claims to ask for, or name a credential; all of that is fixed in
the policy, which is why an application cannot quietly ask for more than it was approved for.
Developer Portal "run developer-portal-login"
↓
DiligenceID builds the request from the policy's frozen snapshot
↓
Your wallet shows you what is being asked, and waits
↓
You approve the wallet discloses only the claim that was asked for
↓
DiligenceID checks the issuer, signature, holder binding, expiry and status
↓
Developer Portal receives the policy's assertions, and a subject
↓
Developer Portal session
What the portal is told
Exactly this:
{
"result": "verified",
"assertions": { "membership_status": "active" },
"subject": "<opaque, specific to this portal>"
}
Your credential does not pass through the portal. Neither do the claims you did not disclose — the policy asks
for membership_status and nothing else, so member_since, region and display_name stay in your wallet
and are never sent.
The subject is specific to this portal
The identifier the portal knows you by is derived from you and from this portal together. Present the same credential to a different application and it receives a different identifier, so two applications comparing notes cannot tell they are looking at the same person.
It is not your email, not a username, and not any identifier DiligenceID uses internally.
What the portal stores
Four fields, and no more:
| Field | Why it exists |
|---|---|
applicationSubject |
Recognises you when you come back |
createdAtUtc |
When the account was made |
lastLoginAtUtc |
When it was last used |
accountStatus |
Whether it is active |
membership_status is not stored. It was true at the moment you signed in, and the portal has no basis to
assert it tomorrow — if a page needs to know, it asks again.
If sign-in does not complete
| What happened | What you will see |
|---|---|
| No credential that satisfies the policy | That credential does not confirm an active Diligence membership |
| The credential has expired | This credential has expired |
| The credential was revoked | This credential can no longer be used |
| You declined in your wallet | You return here, not signed in, and no account is created |
| The request timed out | Start again when you are ready |
Nothing partial is kept. A sign-in that does not complete leaves no account and no session behind.
Signing out
Signing out ends the portal's session. It does nothing to your credential, which is yours and stays in your wallet.
Checking your session…