<!--
{
  "availability" : [
    "iOS: 17.4.0 -",
    "iPadOS: 17.4.0 -",
    "macCatalyst: 17.4.0 -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "Assignables",
  "identifier" : "/documentation/Assignables/UserIdentity",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Assignables"
    ],
    "preciseIdentifier" : "s:11Assignables12UserIdentityP"
  },
  "title" : "UserIdentity"
}
-->

# UserIdentity

Types conforming to this protocol can act as
user identities for editors of a document.

```
protocol UserIdentity : Decodable, Encodable, Hashable, Sendable
```

## Topics

### Inspecting an identity

[`var stringRepresentation: String`](/documentation/Assignables/UserIdentity/stringRepresentation)

String representation of this user identity for display
or debugging purposes.

[`var typeID: String`](/documentation/Assignables/UserIdentity/typeID)

A unique type identifier for this user identity.

### Setting the scope

[`func scope<R>(() throws -> R) rethrows -> R`](/documentation/Assignables/UserIdentity/scope(_:)-esta)

Sets the user identity for document-related operations that
occur within the closure passed in.

[`func scope<R>(() async throws -> R) async rethrows -> R`](/documentation/Assignables/UserIdentity/scope(_:)-j2jq)

Sets the user identity for document-related operations that
occur within the async closure passed in.

### Getting a type eraser

[`func eraseToAnyUserIdentity() -> AnyUserIdentity`](/documentation/Assignables/UserIdentity/eraseToAnyUserIdentity())

Wraps this user identity with a type eraser.

[`typealias As`](/documentation/Assignables/UserIdentity/As)

An alias for [`UserIdentityFactory`](/documentation/Assignables/UserIdentityFactory) for convenience.

## Relationships

### Inherits From

[`Decodable`](/documentation/Swift/Decodable)

[`Encodable`](/documentation/Swift/Encodable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Hashable`](/documentation/Swift/Hashable)

[`Sendable`](/documentation/Swift/Sendable)

[`Equatable`](/documentation/Swift/Equatable)

### Conforming Types

[`StringUserIdentity`](/documentation/Assignables/StringUserIdentity)

[`AnyUserIdentity`](/documentation/Assignables/AnyUserIdentity)

[`AnonymousUserIdentity`](/documentation/Assignables/AnonymousUserIdentity)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)