Skip to content

Instantly share code, notes, and snippets.

View MahdiKarimipour's full-sized avatar
🎯
Focusing

MK MahdiKarimipour

🎯
Focusing
  • TechnologyLeads
  • Sydney, Australia
View GitHub Profile
@MahdiKarimipour
MahdiKarimipour / containerise-react-apps-bash-script-to-generate-final-configs.sh
Created September 5, 2021 20:10
The logic to generate final configs files to containerise React apps
# WHAT IS THIS FILE?
# This helps with loading environment values at run rime,
# so the configs could be injected into docker containers at run time,
# and we only build one image for all environments
#!/bin/bash
# Recreate config file
rm -rf /app/UI/build/env-config.js
touch /app/UI/build/env-config.js
@MahdiKarimipour
MahdiKarimipour / Dockerfile
Last active September 5, 2021 21:11
Containerise React apps with Asp.NET 5.0 host
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
#Add user
#RUN agggroup app && adduser -S -G app app
#USER app
WORKDIR /app
EXPOSE 80
EXPOSE 443
@MahdiKarimipour
MahdiKarimipour / Dockerfile
Last active September 5, 2021 09:32
Dockerfile to Containerise Asp.NET API
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build
#Personal Access Token to Authenticate To Artifactory
ARG PAT
@MahdiKarimipour
MahdiKarimipour / external-auth-twitter-startup.cs
Created August 18, 2021 11:07
External Auth Setup for Twitter
services.AddIdentityCore<ApplicationUser>()
.AddRoles<ApplicationRole>()
.AddEntityFrameworkStores<IdentityDBContext>()
.AddSignInManager()
.AddTokenProvider(TokenOptions.DefaultProvider, typeof(DataProtectorTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultEmailProvider, typeof(EmailTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultPhoneProvider, typeof(PhoneNumberTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultAuthenticatorProvider, typeof(AuthenticatorTokenProvider<ApplicationUser>));
services.AddAuthentication(x =>
@MahdiKarimipour
MahdiKarimipour / external-auth-twitter-frontend-form.jsx
Last active August 18, 2021 11:09
Frontend Form for Twitter Auth
<form method='POST' action={`https://api.domain.com/identity/v1/account/external-login?provider=Twitter&returnUrl=/home`} >
<Button
type="submit"
name='provider'
value='Twitter'
title={`Login using Twitter`}>
<img src='link-to-twitter-logo'} alt="" />
Twitter
</PageButton>
</form>
@MahdiKarimipour
MahdiKarimipour / external-auth-microsoft-frontend-form.jsx
Last active August 18, 2021 10:57
Frontend Form to Initiate Microsoft Login
<form method='POST' action={`https://api.domain.com/identity/v1/account/external-login?provider=Microsoft&returnUrl=/home`} >
<Button
type="submit"
name='provider'
value='Microsoft'
title={`Login using Microsoft`}>
<img src='link-to-microsoft-logo'} alt="" />
Microsoft
</PageButton>
</form>
@MahdiKarimipour
MahdiKarimipour / external-auth-microsoft-startup.cs
Created August 18, 2021 09:34
Start up Configs for Microsoft Auth
services.AddIdentityCore<ApplicationUser>()
.AddRoles<ApplicationRole>()
.AddEntityFrameworkStores<IdentityDBContext>()
.AddSignInManager()
.AddTokenProvider(TokenOptions.DefaultProvider, typeof(DataProtectorTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultEmailProvider, typeof(EmailTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultPhoneProvider, typeof(PhoneNumberTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultAuthenticatorProvider, typeof(AuthenticatorTokenProvider<ApplicationUser>));
services.AddAuthentication(x =>
@MahdiKarimipour
MahdiKarimipour / external-auth-google-startup.cs
Created August 10, 2021 08:12
Start up Config for Google Auth in Asp.NET Identity
services.AddIdentityCore<ApplicationUser>()
.AddRoles<ApplicationRole>()
.AddEntityFrameworkStores<IdentityDBContext>()
.AddSignInManager()
.AddTokenProvider(TokenOptions.DefaultProvider, typeof(DataProtectorTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultEmailProvider, typeof(EmailTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultPhoneProvider, typeof(PhoneNumberTokenProvider<ApplicationUser>))
.AddTokenProvider(TokenOptions.DefaultAuthenticatorProvider, typeof(AuthenticatorTokenProvider<ApplicationUser>));
services.AddAuthentication(x =>
@MahdiKarimipour
MahdiKarimipour / external-auth-google-create-user-using-identity.cs
Created August 10, 2021 03:17
Create User using Asp.NET Identity after Redirection from Google
public async Task<LoginResultViewModel> ExternalLogin(ExternalLoginInfo info)
{
LoginResultViewModel loginResult = null;
if (info.IsEmpty())
{
return null;
}
var signinResult = await signInManager.ExternalLoginSignInAsync(info.LoginProvider, info.ProviderKey, false);
@MahdiKarimipour
MahdiKarimipour / external-auth-google-api-callback.cs
Created August 10, 2021 02:57
Callback Route for Asp.NET API in Google Auth
[HttpGet]
[AllowAnonymous]
[Route("account/external-auth-callback")]
public async Task<IActionResult> ExternalLoginCallback()
{
ExternalLoginInfo info = await signInManager.GetExternalLoginInfoAsync();
var result = await accountService.ExternalLogin(info);
if (result.IsEmpty())