Compare commits

..

No commits in common. "e366f451c20ddbfc313e5580152e51e200a26680" and "827ee5f8801b191de11cc5b9c454c8bf9649fdd5" have entirely different histories.

3 changed files with 15 additions and 25 deletions

View file

@ -39,7 +39,7 @@ A client asks a server to invite a user by their third-party identifier.
Upon receipt of an [`/invite`](#thirdparty_post_matrixclientv3roomsroomidinvite),
the server is expected to look up the third-party identifier with the provided
identity server by making a call to [`/_matrix/identity/v2/lookup`](/identity-service-api/#post_matrixidentityv2lookup).
identity server byt making a call to [`/lookup`](/identity-service-api/#post_matrixidentityv2lookup).
If the lookup yields a result for a Matrix User ID then the normal [invite
process](/server-server-api/#inviting-to-a-room) can be initiated. This process
ends up looking like this:
@ -69,8 +69,7 @@ ends up looking like this:
```
However, if the lookup does not yield a bound User ID, the homeserver must store
the invite on the identity server with a call to
[`/_matrix/identity/v2/store-invite`](/identity-service-api/#post_matrixidentityv2store-invite)
the invite on the identity server with a call to [`/store-invite`](/identity-service-api/#post_matrixidentityv2store-invite)
and emit a valid [`m.room.third_party_invite`](#mroomthird_party_invite) event
to the room. This process ends up looking like this:
@ -105,14 +104,14 @@ to the room. This process ends up looking like this:
```
The third-party user will then need to verify their identity, which results in a
request to [`/_matrix/federation/v1/3pid/onbind`](/server-server-api/#put_matrixfederationv13pidonbind)
request to [`/3pid/onbind`](/server-server-api/#put_matrixfederationv13pidonbind)
from the identity server to the homeserver that bound the third-party identifier
to a user. The homeserver then exchanges the `m.room.third_party_invite` event
in the room for a complete [`m.room.member`](#mroommember) event with
in the room for a complete `m.room.member` event with
`content.membership: invite` and a `content.third_party_invite` property for the
user that has bound the third-party identifier. If the invitee is on a different
homeserver than the inviting user, the invitee's homeserver makes a request to
[`/_matrix/federation/v1/exchange_third_party_invite/{roomId}`](/server-server-api/#put_matrixfederationv1exchange_third_party_inviteroomid).
[`/exchange_third_party_invite`](/server-server-api/#put_matrixfederationv1exchange_third_party_inviteroomid).
All homeservers MUST verify the signature in the `m.room.member` event's
`content.third_party_invite.signed` object.

View file

@ -43,8 +43,7 @@ paths:
properties:
public_key:
type: string
description: |-
[Unpadded Base64](/appendices/#unpadded-base64)-encoded public key.
description: Public key using standard or URL-safe base64 encoding.
required:
- public_key
examples:
@ -75,8 +74,7 @@ paths:
- in: query
name: public_key
required: true
description: |-
The [unpadded Base64](/appendices/#unpadded-base64)-encoded public key to check.
description: The unpadded standard or URL-safe base64-encoded public key to check.
example: VXuGitF39UH5iRfvbIknlvlAVKgD1BsLDMvBf0pmp7c
schema:
type: string
@ -107,14 +105,7 @@ paths:
- in: query
name: public_key
required: true
description: |-
The [unpadded Base64](/appendices/#unpadded-base64)-encoded public
key to check.
This MUST be the exact same encoded string returned in the response
of the [`/store-invite`](/identity-service-api/#post_matrixidentityv2store-invite)
endpoint, or found in the corresponding [`m.room.third_party_invite`](/client-server-api/#mroomthird_party_invite)
event, so it may use the standard or URL-safe alphabets.
description: The unpadded standard or URL-safe base64-encoded public key to check.
example: VXuGitF39UH5iRfvbIknlvlAVKgD1BsLDMvBf0pmp7c
schema:
type: string

View file

@ -25,11 +25,11 @@ properties:
format: uri
public_key:
description: |-
An Ed25519 key with which the token must be signed (though a signature
from any entry in `public_keys` is also sufficient).
A base64-encoded ed25519 key with which the token must be signed
(though a signature from any entry in public_keys is also sufficient).
The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64),
using the standard or URL-safe alphabets.
The key is encoded using unpadded standard or URL-safe base64
encoding.
This exists for backwards compatibility.
type: string
@ -47,10 +47,10 @@ properties:
type: string
public_key:
description: |-
An Ed25519 key with which the token may be signed.
A base-64 encoded ed25519 key with which token may be signed.
The key is encoded using [Unpadded Base64](/appendices/#unpadded-base64),
using the standard or URL-safe alphabets.
The key is encoded using unpadded standard or URL-safe base64
encoding.
type: string
required:
- public_key