mirror of https://github.com/ghostfolio/ghostfolio
committed by
GitHub
14 changed files with 296 additions and 22 deletions
@ -0,0 +1,19 @@ |
|||
import { NgModule } from '@angular/core'; |
|||
import { RouterModule, Routes } from '@angular/router'; |
|||
import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; |
|||
|
|||
import { GhostfolioMeetsInternetIdentityPageComponent } from './ghostfolio-meets-internet-identity-page.component'; |
|||
|
|||
const routes: Routes = [ |
|||
{ |
|||
path: '', |
|||
component: GhostfolioMeetsInternetIdentityPageComponent, |
|||
canActivate: [AuthGuard] |
|||
} |
|||
]; |
|||
|
|||
@NgModule({ |
|||
imports: [RouterModule.forChild(routes)], |
|||
exports: [RouterModule] |
|||
}) |
|||
export class GhostfolioMeetsInternetIdentityRoutingModule {} |
@ -0,0 +1,9 @@ |
|||
import { Component } from '@angular/core'; |
|||
|
|||
@Component({ |
|||
host: { class: 'page' }, |
|||
selector: 'gf-ghostfolio-meets-internet-identity-page', |
|||
styleUrls: ['./ghostfolio-meets-internet-identity-page.scss'], |
|||
templateUrl: './ghostfolio-meets-internet-identity-page.html' |
|||
}) |
|||
export class GhostfolioMeetsInternetIdentityPageComponent {} |
@ -0,0 +1,183 @@ |
|||
<div class="blog container"> |
|||
<div class="row"> |
|||
<div class="col-md-8 offset-md-2"> |
|||
<article> |
|||
<div class="mb-4 text-center"> |
|||
<h1 class="mb-1">Ghostfolio meets Internet Identity</h1> |
|||
<div class="mb-3 text-muted"><small>2022-07-23</small></div> |
|||
<img |
|||
alt="Ghostfolio meets Internet Identity Teaser" |
|||
class="w-100" |
|||
src="./assets/images/blog/ghostfolio-meets-internet-identity.png" |
|||
title="Ghostfolio meets Internet Identity" |
|||
/> |
|||
</div> |
|||
<section class="mb-4"> |
|||
<p> |
|||
<a href="https://ghostfol.io">Ghostfolio</a>, the web-based personal |
|||
finance management software, supports passwordless authentication as |
|||
of now thanks to the integration of |
|||
<a href="https://identity.ic0.app">Internet Identity</a>. This |
|||
blockchain authentication system enables you to sign in securely and |
|||
anonymously to Ghostfolio. With this latest update, Ghostfolio is |
|||
ready for Web3. |
|||
</p> |
|||
<div class="container my-4"> |
|||
<div class="row"> |
|||
<div class="col-md-10 offset-md-1"> |
|||
<blockquote class="blockquote m-0"> |
|||
<p class="mb-0">Track your portfolio without being tracked</p> |
|||
</blockquote> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<p> |
|||
To avoid the security issues that arise with password authentication |
|||
on the traditional web, the |
|||
<a href="https://internetcomputer.org">Internet Computer</a> |
|||
blockchain by <a href="https://dfinity.org">dfinity</a> has |
|||
introduced a new cryptographic authentication system. It is called |
|||
<i>Internet Identity</i> and is as convenient to use as Web2 |
|||
<a href="https://en.wikipedia.org/wiki/OAuth">OAuth</a> ("Open |
|||
Authorization") providers like <i>Google Sign-In</i> or |
|||
<i>Facebook Login</i>. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">How to use Internet Identity?</h2> |
|||
<p> |
|||
<i>Internet Identity</i> is based on the |
|||
<a href="https://en.wikipedia.org/wiki/WebAuthn" |
|||
>WebAuthn protocol</a |
|||
> |
|||
and uses secure cryptographic authentication. It provides three |
|||
options to authenticate yourself: |
|||
</p> |
|||
<ul> |
|||
<li> |
|||
The built-in biometric authentication methods of your smartphone |
|||
or laptop (fingerprint sensor, <i>Face ID</i>, <i>Touch ID</i>) |
|||
</li> |
|||
<li>The password or pin to unlock your computer or mobile phone</li> |
|||
<li>A security key plugged into the USB port of your computer</li> |
|||
</ul> |
|||
<p> |
|||
When you authenticate with <i>Internet Identity</i>, the service |
|||
only gets a dedicated pseudonym rather than sensitive user data like |
|||
the email address or phone number. This preserves your anonymity and |
|||
prevents you being tracked on the Internet. |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<h2 class="h4">The key benefits in a nutshell</h2> |
|||
<ul> |
|||
<li> |
|||
Authenticate yourself securely without the need of an email |
|||
address, username, or a password: all you need is your device to |
|||
log in. |
|||
</li> |
|||
<li> |
|||
Built-in recovery mechanisms to ensure you are not locked out of |
|||
any service that requires the <i>Internet Identity</i>. |
|||
</li> |
|||
<li> |
|||
Log in to various Internet services without being tracked by big |
|||
tech companies. |
|||
</li> |
|||
</ul> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<p> |
|||
If you would like to provide feedback or get involved in further |
|||
development of Ghostfolio, please get in touch by email via |
|||
<a href="mailto:hi@ghostfol.io">hi@ghostfol.io</a> or on Twitter |
|||
<a href="https://twitter.com/ghostfolio_">@ghostfolio_</a>. |
|||
</p> |
|||
<p> |
|||
I look forward to hearing from you.<br /> |
|||
Thomas from Ghostfolio |
|||
</p> |
|||
</section> |
|||
<section class="mb-4"> |
|||
<ul class="list-inline"> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Anonymity</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">App</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Auth Provider</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Authentication</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Blockchain</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Cryptography</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">dfinity</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Face ID</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Fingerprint</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Ghostfolio</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Internet Computer</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Internet Identity</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">OAuth</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Open Source</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">OSS</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Password</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">passwordless</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Portfolio</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Security</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Software</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Technology</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Touch ID</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Wealth Management</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">Web3</span> |
|||
</li> |
|||
<li class="list-inline-item"> |
|||
<span class="badge badge-light">WebAuthn</span> |
|||
</li> |
|||
</ul> |
|||
</section> |
|||
</article> |
|||
</div> |
|||
</div> |
|||
</div> |
@ -0,0 +1,17 @@ |
|||
import { CommonModule } from '@angular/common'; |
|||
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
|||
import { RouterModule } from '@angular/router'; |
|||
|
|||
import { GhostfolioMeetsInternetIdentityRoutingModule } from './ghostfolio-meets-internet-identity-page-routing.module'; |
|||
import { GhostfolioMeetsInternetIdentityPageComponent } from './ghostfolio-meets-internet-identity-page.component'; |
|||
|
|||
@NgModule({ |
|||
declarations: [GhostfolioMeetsInternetIdentityPageComponent], |
|||
imports: [ |
|||
CommonModule, |
|||
GhostfolioMeetsInternetIdentityRoutingModule, |
|||
RouterModule |
|||
], |
|||
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
|||
}) |
|||
export class GhostfolioMeetsInternetIdentityPageModule {} |
@ -0,0 +1,3 @@ |
|||
:host { |
|||
display: block; |
|||
} |
After Width: | Height: | Size: 34 KiB |
Loading…
Reference in new issue