bjarke
09/27/2024, 10:30 AMbjarke
09/27/2024, 10:32 AMJacob Overgaard
09/27/2024, 2:35 PMJacob Overgaard
09/27/2024, 2:39 PMjson
{
"name": "Login extensions",
"allowPublicAccess": true,
"extensions": [
{
"type": "appEntryPoint",
"name": "Login entry point",
"alias": "my.login.entryPoint",
"js": "/App_Plugins/MyLogin/MyLogin.js"
}
]
}
// MyLogin.js
js
export const onInit = (host, registry) => {
console.log('public onInit', host);
registry.register({
type: 'authProvider',
name: 'Company Auth Provider',
alias: 'Company.AuthProvider.OpenIdConnect',
forProviderName: 'Umbraco.OpenIdConnect',
meta: {
label: "Company login",
defaultView: {
icon: "icon-cloud"
}
}
})
}
Jacob Overgaard
09/27/2024, 2:39 PMMikkel Johansen
09/27/2024, 2:43 PMMikkel Johansen
09/27/2024, 2:47 PMpublic class AuthManifestComposer : IComposer
{
public void Compose(IUmbracoBuilder builder)
{
builder.Services.AddSingleton<IPackageManifestReader, AuthManifestReader>();
}
}
internal class AuthManifestReader : IPackageManifestReader
{
public Task<IEnumerable<PackageManifest>> ReadPackageManifestsAsync()
{
var authExtension = JsonObject.Parse("""
{
"name": "Test Auth Provider",
"alias": "Test.AuthProvider.OpenIdConnect",
"type": "authProvider",
"forProviderName":"Umbraco.OpenIdConnect",
"meta":{
"label":"Test login",
"linking": {
"allowManualLinking":true
}
}
}
""");
List<PackageManifest> manifest = [
new PackageManifest
{
Name = "test-authpackage",
AllowTelemetry = true,
AllowPublicAccess = true,
Version = "1.1",
Extensions = [authExtension!]
}];
return Task.FromResult(manifest.AsEnumerable());
}
}
Jacob Overgaard
09/27/2024, 2:49 PM