diff --git a/src/Admin/Controllers/LoginController.cs b/src/Admin/Controllers/LoginController.cs index 9020d3d8af..539d9d2de1 100644 --- a/src/Admin/Controllers/LoginController.cs +++ b/src/Admin/Controllers/LoginController.cs @@ -40,7 +40,7 @@ namespace Bit.Admin.Controllers public async Task Confirm(string email, string token, string returnUrl) { - var result = await _signInManager.PasswordlessSignInAsync(email, token, false); + var result = await _signInManager.PasswordlessSignInAsync(email, token, true); if(!result.Succeeded) { // TODO: error? @@ -54,5 +54,13 @@ namespace Bit.Admin.Controllers return RedirectToAction("Index", "Home"); } + + [HttpPost] + [ValidateAntiForgeryToken] + public async Task Logout() + { + await _signInManager.SignOutAsync(); + return RedirectToAction("Index"); + } } } diff --git a/src/Admin/Startup.cs b/src/Admin/Startup.cs index 57b3cd5383..46552fbf15 100644 --- a/src/Admin/Startup.cs +++ b/src/Admin/Startup.cs @@ -4,11 +4,9 @@ using Bit.Core.Identity; using Bit.Core.Utilities; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.DependencyInjection.Extensions; using Microsoft.Extensions.Logging; using Serilog.Events; using Stripe; diff --git a/src/Admin/Views/Shared/_Layout.cshtml b/src/Admin/Views/Shared/_Layout.cshtml index e4c8218d03..df8bc63f82 100644 --- a/src/Admin/Views/Shared/_Layout.cshtml +++ b/src/Admin/Views/Shared/_Layout.cshtml @@ -1,4 +1,5 @@ - +@inject SignInManager SignInManager + @@ -39,6 +40,16 @@ Organizations + @if(SignInManager.IsSignedIn(User)) + { +
+ +
+ } + else + { + Log In + } diff --git a/src/Admin/Views/_ViewImports.cshtml b/src/Admin/Views/_ViewImports.cshtml index 0b1b73efc1..d7a2fbc3a8 100644 --- a/src/Admin/Views/_ViewImports.cshtml +++ b/src/Admin/Views/_ViewImports.cshtml @@ -1,3 +1,4 @@ +@using Microsoft.AspNetCore.Identity @using Bit.Admin @using Bit.Admin.Models @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/src/Core/Utilities/ServiceCollectionExtensions.cs b/src/Core/Utilities/ServiceCollectionExtensions.cs index 35ae318260..e8b34c0ea6 100644 --- a/src/Core/Utilities/ServiceCollectionExtensions.cs +++ b/src/Core/Utilities/ServiceCollectionExtensions.cs @@ -223,7 +223,7 @@ namespace Bit.Core.Utilities options.AccessDeniedPath = "/login?accessDenied=1"; options.Cookie.Name = $"Bitwarden_{globalSettings.ProjectName}"; options.Cookie.HttpOnly = true; - options.ExpireTimeSpan = TimeSpan.FromMinutes(60); + options.Cookie.Expiration = options.ExpireTimeSpan = TimeSpan.FromDays(2); options.ReturnUrlParameter = "returnUrl"; options.SlidingExpiration = true; });