Browse Source

Added github auth.

pull/337/head
Sebastian Stehle 7 years ago
parent
commit
27436ef952
  1. 24
      src/Squidex/Config/Authentication/GithubHandler.cs
  2. 7
      src/Squidex/Config/Authentication/GoogleHandler.cs
  3. 9
      src/Squidex/Config/MyIdentityOptions.cs
  4. 1
      src/Squidex/Squidex.csproj
  5. 3
      src/Squidex/app/theme/_static.scss
  6. 4
      src/Squidex/app/theme/_vars.scss

24
src/Squidex/Config/Authentication/GithubHandler.cs

@ -5,10 +5,10 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication.OAuth;
using Squidex.Infrastructure;
using Squidex.Shared.Identity;
namespace Squidex.Config.Authentication
@ -17,27 +17,11 @@ namespace Squidex.Config.Authentication
{
public override Task CreatingTicket(OAuthCreatingTicketContext context)
{
var displayNameClaim = context.Identity.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Name);
if (displayNameClaim != null)
{
context.Identity.SetDisplayName(displayNameClaim.Value);
}
var pictureUrl = context.User?.Value<string>("picture");
if (string.IsNullOrWhiteSpace(pictureUrl))
{
pictureUrl = context.User?["image"]?.Value<string>("url");
if (pictureUrl != null && pictureUrl.EndsWith("?sz=50", System.StringComparison.Ordinal))
{
pictureUrl = pictureUrl.Substring(0, pictureUrl.Length - 6);
}
}
var nameClaim = context.Identity.FindFirst(ClaimTypes.Name)?.Value;
if (!string.IsNullOrWhiteSpace(pictureUrl))
if (!string.IsNullOrWhiteSpace(nameClaim))
{
context.Identity.SetPictureUrl(pictureUrl);
context.Identity.SetDisplayName(nameClaim);
}
return base.CreatingTicket(context);

7
src/Squidex/Config/Authentication/GoogleHandler.cs

@ -26,10 +26,11 @@ namespace Squidex.Config.Authentication
public override Task CreatingTicket(OAuthCreatingTicketContext context)
{
var displayNameClaim = context.Identity.Claims.FirstOrDefault(x => x.Type == ClaimTypes.Name);
if (displayNameClaim != null)
var nameClaim = context.Identity.FindFirst(ClaimTypes.Name)?.Value;
if (!string.IsNullOrWhiteSpace(nameClaim))
{
context.Identity.SetDisplayName(displayNameClaim.Value);
context.Identity.SetDisplayName(nameClaim);
}
var pictureUrl = context.User?.Value<string>("picture");

9
src/Squidex/Config/MyIdentityOptions.cs

@ -13,6 +13,10 @@ namespace Squidex.Config
public string AdminPassword { get; set; }
public string GithubClient { get; set; }
public string GithubSecret { get; set; }
public string GoogleClient { get; set; }
public string GoogleSecret { get; set; }
@ -49,6 +53,11 @@ namespace Squidex.Config
return !string.IsNullOrWhiteSpace(OidcAuthority) && !string.IsNullOrWhiteSpace(OidcClient) && !string.IsNullOrWhiteSpace(OidcSecret);
}
public bool IsGithubAuthConfigured()
{
return !string.IsNullOrWhiteSpace(GithubClient) && !string.IsNullOrWhiteSpace(GithubSecret);
}
public bool IsGoogleAuthConfigured()
{
return !string.IsNullOrWhiteSpace(GoogleClient) && !string.IsNullOrWhiteSpace(GoogleSecret);

1
src/Squidex/Squidex.csproj

@ -55,6 +55,7 @@
<ItemGroup>
<PackageReference Include="Algolia.Search" Version="5.2.1" />
<PackageReference Include="AspNet.Security.OAuth.GitHub" Version="2.0.0" />
<PackageReference Include="Ben.BlockingDetector" Version="0.0.3" />
<PackageReference Include="EventStore.ClientAPI.NetCore" Version="4.1.0.23" />
<PackageReference Include="IdentityServer4" Version="2.3.2" />

3
src/Squidex/app/theme/_static.scss

@ -109,7 +109,8 @@ noscript {
&-icon {
display: inline-block;
font-size: 1.5rem;
height: 20px;
font-size: 1.1rem;
font-weight: normal;
vertical-align: middle;
width: 1.6rem;

4
src/Squidex/app/theme/_vars.scss

@ -17,8 +17,8 @@ $color-extern-google: #d34836;
$color-extern-google-icon: #b02c1b;
$color-extern-microsoft: #004185;
$color-extern-microsoft-icon: #1b67b7;
$color-extern-github: #191919;
$color-extern-github-icon: #4a4a4a;
$color-extern-github: #353535;
$color-extern-github-icon: #616161;
$color-extern-twitter: #1da1f2;
$color-extern-twitter-icon: #1681bf;

Loading…
Cancel
Save