From 0d12cf9217274a202048fb9a6f9d0efa4db35323 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 23 Mar 2018 10:12:09 -0400 Subject: [PATCH] persist login. allow log out --- src/Admin/Controllers/LoginController.cs | 10 +++++++++- src/Admin/Startup.cs | 2 -- src/Admin/Views/Shared/_Layout.cshtml | 13 ++++++++++++- src/Admin/Views/_ViewImports.cshtml | 1 + src/Core/Utilities/ServiceCollectionExtensions.cs | 2 +- 5 files changed, 23 insertions(+), 5 deletions(-) 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; });