#### [Abblix\.Oidc\.Server](https://www.abblix.com/en/docs/api/abblix-oidc-server 'index')
### [Abblix\.Oidc\.Server\.Features\.DeviceAuthorization](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DeviceAuthorization 'Abblix\.Oidc\.Server\.Features\.DeviceAuthorization')

## UserCodeGenerator Class

Generates user codes for the Device Authorization Grant \(RFC 8628\)\.
The alphabet used for code generation is configurable to support
numeric, alphabetic, or alphanumeric codes\.

```csharp
public class UserCodeGenerator : Abblix.Oidc.Server.Features.DeviceAuthorization.Interfaces.IUserCodeGenerator
```

Inheritance [System\.Object](https://learn.microsoft.com/en-us/dotnet/api/system.object 'System\.Object') → UserCodeGenerator

Implements [IUserCodeGenerator](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DeviceAuthorization.Interfaces.IUserCodeGenerator 'Abblix\.Oidc\.Server\.Features\.DeviceAuthorization\.Interfaces\.IUserCodeGenerator')
### Constructors

## UserCodeGenerator\(IOptions\<OidcOptions\>\) Constructor {#Abblix.Oidc.Server.Features.DeviceAuthorization.UserCodeGenerator.UserCodeGenerator(Microsoft.Extensions.Options.IOptions_Abblix.Oidc.Server.Common.Configuration.OidcOptions_)}

Generates user codes for the Device Authorization Grant \(RFC 8628\)\.
The alphabet used for code generation is configurable to support
numeric, alphabetic, or alphanumeric codes\.

```csharp
public UserCodeGenerator(Microsoft.Extensions.Options.IOptions<Abblix.Oidc.Server.Common.Configuration.OidcOptions> options);
```
#### Parameters

###### `options` [Microsoft\.Extensions\.Options\.IOptions&lt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptions-1 'Microsoft\.Extensions\.Options\.IOptions\`1')[OidcOptions](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Common.Configuration.OidcOptions 'Abblix\.Oidc\.Server\.Common\.Configuration\.OidcOptions')[&gt;](https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.options.ioptions-1 'Microsoft\.Extensions\.Options\.IOptions\`1') {#Abblix.Oidc.Server.Features.DeviceAuthorization.UserCodeGenerator.UserCodeGenerator(Microsoft.Extensions.Options.IOptions_Abblix.Oidc.Server.Common.Configuration.OidcOptions_).options}

Configuration options containing user code settings\.
### Methods

## UserCodeGenerator\.GenerateUserCode\(\) Method {#Abblix.Oidc.Server.Features.DeviceAuthorization.UserCodeGenerator.GenerateUserCode()}

Generates a user\-friendly numeric code that the end\-user enters on the verification page\.

```csharp
public string GenerateUserCode();
```

Implements [GenerateUserCode\(\)](https://www.abblix.com/en/docs/api/abblix-oidc-server/Abblix.Oidc.Server.Features.DeviceAuthorization.Interfaces.IUserCodeGenerator#Abblix.Oidc.Server.Features.DeviceAuthorization.Interfaces.IUserCodeGenerator.GenerateUserCode() 'Abblix\.Oidc\.Server\.Features\.DeviceAuthorization\.Interfaces\.IUserCodeGenerator\.GenerateUserCode\(\)')

#### Returns
[System\.String](https://learn.microsoft.com/en-us/dotnet/api/system.string 'System\.String')  
A numeric verification code \(e\.g\., "1234\-5678"\)\.
