Skip to content

Commit

Permalink
ConsumerAppRepository.cs - added client RefreshTokenUsage to only one…
Browse files Browse the repository at this point in the history
… use and RefreshTokenExpiration to sliding

consumerapp-add.html - fixes standalone
consumerapp-edit.html - fixes standalone
  • Loading branch information
Siddhartha authored and Siddhartha committed Jun 15, 2017
1 parent 914053f commit f33cc26
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 15 deletions.
Expand Up @@ -98,6 +98,8 @@ public async Task<List<ConsumerApps>> GetListOfConsumerAppsAsync()
public async Task UpdateConsumerAppsAsync(ConsumerApps consumerApps)
{
var client = await _clientDataRepository.FirstOrDefaultAsync(x => x.Id == consumerApps.Id);
client.RefreshTokenUsage = 1;
client.RefreshTokenExpiration = 0;
client.ClientName = consumerApps.Name;
client.ClientId = consumerApps.AuthId;
_clientDataRepository.UpdateAsync(client);
Expand Down Expand Up @@ -188,12 +190,13 @@ private IdentityServer4.Models.Client ReturnIdentityServerClientFromConsumerApp(
new IdentityServer4.Models.Secret(consumerApp.AuthSecret.Sha256())
},
AllowOfflineAccess = true,
RefreshTokenUsage = TokenUsage.ReUse,
RefreshTokenUsage = TokenUsage.OneTimeOnly,
AccessTokenLifetime = 86400,
AuthorizationCodeLifetime = 86400,
IdentityTokenLifetime = 86400,
AbsoluteRefreshTokenLifetime = 5184000,
SlidingRefreshTokenLifetime = 5184000
SlidingRefreshTokenLifetime = 5184000,
RefreshTokenExpiration = TokenExpiration.Sliding
};
}

Expand Down
Expand Up @@ -11,13 +11,13 @@ <h3>Add New Consumer App</h3>
<div class="form-group">
<div class="half-width align-left">
<md-input-container class="full-width">
<input mdInput placeholder="Auth Id" [(ngModel)]="consumerModel.AuthId" [disabled]="true" name="AuthId" #AuthId="ngModel">
<input mdInput placeholder="Auth Id" [(ngModel)]="consumerModel.AuthId" [ngModelOptions]="{standalone: true}" [disabled]="true" name="AuthId" #AuthId="ngModel">
</md-input-container>
<button md-raised-button type="button" class="btn-back btn-green btn-reg" (click)="getRandomNumber(true)">Re-Generate</button>
</div>
<div class="half-width align-left">
<md-input-container class="full-width">
<input mdInput placeholder="Auth Secret" [(ngModel)]="consumerModel.AuthSecret" [disabled]="true" name="AuthSecret" #AuthSecret="ngModel">
<input mdInput placeholder="Auth Secret" [(ngModel)]="consumerModel.AuthSecret" [ngModelOptions]="{standalone: true}" [disabled]="true" name="AuthSecret" #AuthSecret="ngModel">
</md-input-container>
<div [hidden]="!clientSecretIndicator" class="error">Please copy the client secret. It will be encoded after saving.</div>
<button md-raised-button type="button" class="btn-back btn-green" (click)="getRandomNumber(false)">Re-Generate</button>
Expand All @@ -27,13 +27,13 @@ <h3>Add New Consumer App</h3>
<div class="form-group">
<div class="half-width align-left">
<md-input-container class="full-width">
<input mdInput placeholder="Name" type="text" name="consumerName" [(ngModel)]="consumerModel.Name" maxlength="255" required #consumerName="ngModel">
<input mdInput placeholder="Name" type="text" name="consumerName" [(ngModel)]="consumerModel.Name" [ngModelOptions]="{standalone: true}" maxlength="255" required #consumerName="ngModel">
</md-input-container>
<div [hidden]="!(consumerName.touched && !consumerName.valid && consumerName.errors.required)" class="error">Name is required</div>
</div>
<div class="half-width align-left">
<md-input-container class="full-width">
<input mdInput placeholder="Call Back Url" type="text" name="consumerCallBackUrl" [(ngModel)]="consumerModel.CallbackUrl" maxlength="255" required #consumerCallBackUrl="ngModel" validateUrl>
<input mdInput placeholder="Call Back Url" type="text" name="consumerCallBackUrl" [(ngModel)]="consumerModel.CallbackUrl" [ngModelOptions]="{standalone: true}" maxlength="255" required #consumerCallBackUrl="ngModel" validateUrl>
</md-input-container>
<div [hidden]="!(consumerCallBackUrl.touched && !consumerCallBackUrl.valid && consumerCallBackUrl.errors.required)" class="error">Call Back Url is required</div>
<div [hidden]="!(consumerCallBackUrl.touched && !consumerCallBackUrl.valid && !consumerCallBackUrl.errors.required && consumerCallBackUrl.errors.url)" class="error">Call Back Url is not valid</div>
Expand All @@ -42,14 +42,14 @@ <h3>Add New Consumer App</h3>
<div class="clearfix"></div>
<div class="form-group">
<div class="half-width align-left" style="position:relative;">
<md2-select multiple class="full-width" [(ngModel)]="consumerModel.Scopes" (change)="scopeOnChange(consumerModel.Scopes)" placeholder="Select Scopes" required>
<md2-select multiple class="full-width" [(ngModel)]="consumerModel.Scopes" [ngModelOptions]="{standalone: true}" (change)="scopeOnChange(consumerModel.Scopes)" placeholder="Select Scopes" required>
<md2-option *ngFor="let i of scopes" [value]="i.value">{{i.name}}</md2-option>
</md2-select>
<div [hidden]="!clientScopeIndicator" class="error">Scope Required</div>
</div>
<div class="half-width align-left">
<md-input-container class="full-width">
<input mdInput placeholder="LogoutUrl" type="text" name="logoutUrl" [(ngModel)]="consumerModel.LogoutUrl" maxlength="255" required #logoutUrl="ngModel" validateUrl>
<input mdInput placeholder="LogoutUrl" type="text" name="logoutUrl" [(ngModel)]="consumerModel.LogoutUrl" [ngModelOptions]="{standalone: true}" maxlength="255" required #logoutUrl="ngModel" validateUrl>
</md-input-container>
<div [hidden]="!(logoutUrl.touched && !logoutUrl.valid && logoutUrl.errors.required)" class="error">Log-Out Url is required</div>
<div [hidden]="!(logoutUrl.touched && !logoutUrl.valid && !logoutUrl.errors.required && logoutUrl.errors.url)" class="error">Log-Out Url is not valid</div>
Expand Down
Expand Up @@ -8,17 +8,17 @@ <h3>Edit Consumer App</h3>
</div>
</div>
<form #consumerappEditForm="ngForm">
<input type="hidden" [(ngModel)]="consumerModel.Id" name="id" />
<input type="hidden" [(ngModel)]="consumerModel.Id" [ngModelOptions]="{standalone: true}" name="id" />
<div class="form-group d-flex">
<div class="half-width mr-25">
<md-input-container class="full-width">
<input mdInput placeholder="Auth Id" [(ngModel)]="consumerModel.AuthId" [disabled]="true" name="AuthId">
<input mdInput placeholder="Auth Id" [(ngModel)]="consumerModel.AuthId" [ngModelOptions]="{standalone: true}" [disabled]="true" name="AuthId">
</md-input-container>
<button md-raised-button type="submit" class="btn-back btn-green" (click)="getRandomNumber(true)">Re-Generate</button>
</div>
<div class="half-width">
<md-input-container class="full-width">
<input mdInput [type]="clientSecretIndicator ? 'text':'password'" placeholder="Auth Secret" [(ngModel)]="consumerModel.AuthSecret" [disabled]="true" name="AuthSecret">
<input mdInput [type]="clientSecretIndicator ? 'text':'password'" placeholder="Auth Secret" [(ngModel)]="consumerModel.AuthSecret" [ngModelOptions]="{standalone: true}" [disabled]="true" name="AuthSecret">
</md-input-container>
<button md-raised-button type="submit" class="btn-back btn-green" (click)="getRandomNumber(false)">Re-Generate</button>
<div [hidden]="!clientSecretIndicator" class="error">Please copy the client secret. It will be encoded after saving.</div>
Expand All @@ -27,29 +27,29 @@ <h3>Edit Consumer App</h3>
<div class="form-group d-flex">
<div class="half-width mr-25">
<md-input-container class="full-width">
<input mdInput name="name" placeholder="Name" [(ngModel)]="consumerModel.Name" maxlength="255" required #name="ngModel">
<input mdInput name="name" placeholder="Name" [(ngModel)]="consumerModel.Name" [ngModelOptions]="{standalone: true}" maxlength="255" required #name="ngModel">
</md-input-container>
<div [hidden]="!(name.touched && !name.valid && name.errors.required)" class="error">Name is required</div>
</div>
<div class="half-width mr-25">
<md-input-container class="full-width">
<input mdInput placeholder="Call Back Url" type="text" name="consumerCallBackUrl" [(ngModel)]="consumerModel.CallbackUrl" maxlength="255" required #consumerCallBackUrl="ngModel" validateUrl>
<input mdInput placeholder="Call Back Url" type="text" name="consumerCallBackUrl" [(ngModel)]="consumerModel.CallbackUrl" [ngModelOptions]="{standalone: true}" maxlength="255" required #consumerCallBackUrl="ngModel" validateUrl>
</md-input-container>
<div [hidden]="!(consumerCallBackUrl.touched && !consumerCallBackUrl.valid && consumerCallBackUrl.errors.required)" class="error">Call Back Url is required</div>
<div [hidden]="!(consumerCallBackUrl.touched && !consumerCallBackUrl.valid && !consumerCallBackUrl.errors.required && consumerCallBackUrl.errors.url)" class="error">Call Back Url is not valid</div>
</div>
</div>
<div class="form-group">
<div class="half-width" style="position:relative;">
<md2-select multiple name="select" [(ngModel)]="consumerModel.Scopes" (change)="scopeOnChange(consumerModel.Scopes)" placeholder="Select Scopes" required>
<md2-select multiple name="select" [(ngModel)]="consumerModel.Scopes" [ngModelOptions]="{standalone: true}" (change)="scopeOnChange(consumerModel.Scopes)" placeholder="Select Scopes" required>
<md2-option *ngFor="let i of scopes" [value]="i.value">{{i.name}}</md2-option>
</md2-select>
</div>
<div [hidden]="!clientScopeIndicator" class="error">Scope Required</div>
</div>
<div class="form-group">
<md-input-container class="full-width">
<input mdInput placeholder="LogoutUrl" type="text" name="logoutUrl" [(ngModel)]="consumerModel.LogoutUrl" maxlength="255" required #logoutUrl="ngModel" validateUrl>
<input mdInput placeholder="LogoutUrl" type="text" name="logoutUrl" [(ngModel)]="consumerModel.LogoutUrl" [ngModelOptions]="{standalone: true}" maxlength="255" required #logoutUrl="ngModel" validateUrl>
</md-input-container>
<div [hidden]="!(logoutUrl.touched && !logoutUrl.valid && logoutUrl.errors.required)" class="error">Log-Out Url is required</div>
<div [hidden]="!(logoutUrl.touched && !logoutUrl.valid && !logoutUrl.errors.required && logoutUrl.errors.url)" class="error">Log-Out Url is not valid</div>
Expand Down

0 comments on commit f33cc26

Please sign in to comment.