BankID and Vipps Login
Feature Detail
Description
Integration of Norwegian national identity verification (BankID) and Vipps as authentication methods. All four organizations identified this as a MUST HAVE feature, with biometric login (Face ID / fingerprint) as the follow-up session authentication after first-time verification. This is planned for Phase 2. A key side effect of Vipps login is that it can return the user's national identity number (personnummer) back to the organization's membership system, filling a significant data gap that currently affects all organizations. Cost of Vipps integration (350–750 NOK/month) is to be distributed across participating organizations.
Analysis
Increases trust and reduces friction for onboarding. The Vipps personnummer return solves a critical membership data quality problem for all organizations. BankID provides legally-recognized identity verification suitable for handling sensitive personal data.
Requires Vipps Login API integration and BankID provider. After first-time BankID/Vipps auth, subsequent sessions use biometric (local_auth package on Flutter). Token management via Supabase session. Coordinate with Norse Digital Products on shared Vipps cost model across orgs.
Components (209)
Shared Components
These components are reused across multiple features
User Interface (59)
Service Layer (52)
Data Layer (33)
Infrastructure (54)
User Stories (24)
As a As a Peer Mentor (Likeperson)
I want to be clearly informed when my national ID number (personnummer) will be shared with my organization
So that I can give informed consent before my sensitive personal data is stored and linked to my member record
- Given Vipps Login succeeds and returns a personnummer, When the response is processed, Then the personnummer confirmation widget is shown before any data is stored
- Given the confirmation widget is shown, When I review the information, Then I can see exactly what data (personnummer) will be stored and which organization it will be linked to
- Given I confirm sharing, When I tap the confirm button, Then the personnummer is stored securely and I am navigated to the role-based home screen
- +2 more
As a As a Peer Mentor (Likeperson)
I want to log out of the app and have my session and locally stored credentials cleared
So that my account cannot be accessed by someone else who picks up my device
- Given I am logged in and navigate to Settings, When I tap the logout option, Then a confirmation dialog is shown before proceeding
- Given I confirm logout, When the logout process runs, Then the auth session manager invalidates my Supabase session server-side
- Given logout completes, When I am redirected, Then I arrive at the auth method selector screen with no residual session state
- +3 more
As a As a Peer Mentor (Likeperson)
I want to return to the app and have my session automatically resumed if I was recently active
So that I can pick up where I left off without being interrupted by login screens during normal daily use
- Given I have an active session and reopen the app within the session window, When the app initializes, Then I am taken directly to my home screen without any login prompt
- Given my session token has expired, When the app initializes, Then the biometric prompt is shown to re-authenticate
- Given biometric authentication succeeds on session resume, When verification completes, Then a new Supabase session is established and I am taken to my home screen
- +2 more
As a As a Coordinator
I want to be clearly informed when my national ID number (personnummer) will be shared with my organization
So that I can give informed consent before my sensitive personal data is stored and linked to my member record
- Given Vipps Login succeeds and returns a personnummer, When the response is processed, Then the personnummer confirmation widget is shown before any data is stored
- Given the confirmation widget is shown, When I review the information, Then I can see exactly what data (personnummer) will be stored and which organization it will be linked to
- Given I confirm sharing, When I tap the confirm button, Then the personnummer is stored securely and I am navigated to the role-based home screen
- +2 more
As a As a Coordinator
I want to log out of the app and have my session and locally stored credentials cleared
So that my account cannot be accessed by someone else who picks up my device
- Given I am logged in and navigate to Settings, When I tap the logout option, Then a confirmation dialog is shown before proceeding
- Given I confirm logout, When the logout process runs, Then the auth session manager invalidates my Supabase session server-side
- Given logout completes, When I am redirected, Then I arrive at the auth method selector screen with no residual session state
- +3 more
As a As a Coordinator
I want to return to the app and have my session automatically resumed if I was recently active
So that I can pick up where I left off without being interrupted by login screens during normal daily use
- Given I have an active session and reopen the app within the session window, When the app initializes, Then I am taken directly to my home screen without any login prompt
- Given my session token has expired, When the app initializes, Then the biometric prompt is shown to re-authenticate
- Given biometric authentication succeeds on session resume, When verification completes, Then a new Supabase session is established and I am taken to my home screen
- +2 more
As a As a Organization Administrator
I want to be clearly informed when my national ID number (personnummer) will be shared with my organization
So that I can give informed consent before my sensitive personal data is stored and linked to my member record
- Given Vipps Login succeeds and returns a personnummer, When the response is processed, Then the personnummer confirmation widget is shown before any data is stored
- Given the confirmation widget is shown, When I review the information, Then I can see exactly what data (personnummer) will be stored and which organization it will be linked to
- Given I confirm sharing, When I tap the confirm button, Then the personnummer is stored securely and I am navigated to the role-based home screen
- +2 more
As a As a Organization Administrator
I want to log out of the app and have my session and locally stored credentials cleared
So that my account cannot be accessed by someone else who picks up my device
- Given I am logged in and navigate to Settings, When I tap the logout option, Then a confirmation dialog is shown before proceeding
- Given I confirm logout, When the logout process runs, Then the auth session manager invalidates my Supabase session server-side
- Given logout completes, When I am redirected, Then I arrive at the auth method selector screen with no residual session state
- +3 more
As a As a Organization Administrator
I want to return to the app and have my session automatically resumed if I was recently active
So that I can pick up where I left off without being interrupted by login screens during normal daily use
- Given I have an active session and reopen the app within the session window, When the app initializes, Then I am taken directly to my home screen without any login prompt
- Given my session token has expired, When the app initializes, Then the biometric prompt is shown to re-authenticate
- Given biometric authentication succeeds on session resume, When verification completes, Then a new Supabase session is established and I am taken to my home screen
- +2 more
As a As a Peer Mentor (Likeperson)
I want to choose between BankID and Vipps when logging in for the first time
So that I can authenticate using the Norwegian digital identity provider I am most comfortable with
- Given I open the app for the first time, When the authentication screen loads, Then I see clearly labeled options for BankID and Vipps with recognizable logos and brief explanations
- Given I am on the authentication method selector, When I tap BankID, Then I am navigated to the BankID authentication screen
- Given I am on the authentication method selector, When I tap Vipps, Then I am navigated to the Vipps authentication screen
- +2 more
As a As a Peer Mentor (Likeperson)
I want the authentication screen to be fully accessible with screen reader support and clear visual contrast
So that I can log in independently regardless of whether I have visual, motor, or cognitive impairments
- Given I am using VoiceOver, When I navigate to the auth method selector screen, Then each button is announced with its label, role, and a brief description of what it does
- Given I am using dynamic text size set to large, When the auth screens render, Then all text scales appropriately without truncation or overlap
- Given I inspect the authentication screens, When I run a contrast ratio check, Then all text and interactive elements meet WCAG 2.2 AA minimum contrast ratios (4.5:1 for normal text, 3:1 for large text)
- +3 more
As a As a Peer Mentor (Likeperson)
I want to log in using my BankID credentials
So that my identity is verified to the same high standard required by Norwegian financial and government services
- Given I have selected BankID on the auth method selector, When the BankID screen loads, Then the BankID provider client initiates an authentication session
- Given BankID authentication is in progress, When I complete the BankID flow in the BankID app or via one-time code, Then the deep link handler receives the callback and the app resumes the session
- Given BankID authentication succeeds, When the callback is processed, Then I am navigated to the role-based home screen without additional steps
- +2 more
As a As a Peer Mentor (Likeperson)
I want to log in using Vipps Login
So that I can authenticate quickly with an app most Norwegians already have installed, and optionally share my personnummer with my organization
- Given I have selected Vipps on the auth method selector, When the Vipps screen loads, Then the Vipps API client initiates a login session and opens the Vipps app or authorization URL
- Given the Vipps login flow is in progress in the Vipps app, When I approve the login request, Then the deep link handler receives the Vipps callback and returns me to the peer mentor app
- Given Vipps login succeeds and personnummer is available in the response, When the identity is received, Then the personnummer confirmation widget is displayed asking for acknowledgment before storing
- +3 more
As a As a Peer Mentor (Likeperson)
I want to enable Face ID or fingerprint login after my first BankID or Vipps authentication
So that subsequent logins are fast and frictionless while maintaining the security of my initial identity verification
- Given I have just completed BankID or Vipps login for the first time, When authentication succeeds, Then I am offered the option to enable biometric login with a clear explanation
- Given I opt in to biometric login, When I confirm, Then the biometric auth service registers my biometric preference and stores my session token securely
- Given biometric login is enabled, When I open the app on subsequent sessions, Then the biometric prompt overlay is shown immediately instead of the auth method selector
- +3 more
As a As a Coordinator
I want to choose between BankID and Vipps when logging in for the first time
So that I can authenticate using the Norwegian digital identity provider I am most comfortable with
- Given I open the app for the first time, When the authentication screen loads, Then I see clearly labeled options for BankID and Vipps with recognizable logos and brief explanations
- Given I am on the authentication method selector, When I tap BankID, Then I am navigated to the BankID authentication screen
- Given I am on the authentication method selector, When I tap Vipps, Then I am navigated to the Vipps authentication screen
- +2 more
As a As a Coordinator
I want the authentication screen to be fully accessible with screen reader support and clear visual contrast
So that I can log in independently regardless of whether I have visual, motor, or cognitive impairments
- Given I am using VoiceOver, When I navigate to the auth method selector screen, Then each button is announced with its label, role, and a brief description of what it does
- Given I am using dynamic text size set to large, When the auth screens render, Then all text scales appropriately without truncation or overlap
- Given I inspect the authentication screens, When I run a contrast ratio check, Then all text and interactive elements meet WCAG 2.2 AA minimum contrast ratios (4.5:1 for normal text, 3:1 for large text)
- +3 more
As a As a Coordinator
I want to log in using my BankID credentials
So that my identity is verified to the same high standard required by Norwegian financial and government services
- Given I have selected BankID on the auth method selector, When the BankID screen loads, Then the BankID provider client initiates an authentication session
- Given BankID authentication is in progress, When I complete the BankID flow in the BankID app or via one-time code, Then the deep link handler receives the callback and the app resumes the session
- Given BankID authentication succeeds, When the callback is processed, Then I am navigated to the role-based home screen without additional steps
- +2 more
As a As a Coordinator
I want to log in using Vipps Login
So that I can authenticate quickly with an app most Norwegians already have installed, and optionally share my personnummer with my organization
- Given I have selected Vipps on the auth method selector, When the Vipps screen loads, Then the Vipps API client initiates a login session and opens the Vipps app or authorization URL
- Given the Vipps login flow is in progress in the Vipps app, When I approve the login request, Then the deep link handler receives the Vipps callback and returns me to the peer mentor app
- Given Vipps login succeeds and personnummer is available in the response, When the identity is received, Then the personnummer confirmation widget is displayed asking for acknowledgment before storing
- +3 more
As a As a Coordinator
I want to enable Face ID or fingerprint login after my first BankID or Vipps authentication
So that subsequent logins are fast and frictionless while maintaining the security of my initial identity verification
- Given I have just completed BankID or Vipps login for the first time, When authentication succeeds, Then I am offered the option to enable biometric login with a clear explanation
- Given I opt in to biometric login, When I confirm, Then the biometric auth service registers my biometric preference and stores my session token securely
- Given biometric login is enabled, When I open the app on subsequent sessions, Then the biometric prompt overlay is shown immediately instead of the auth method selector
- +3 more
As a As a Organization Administrator
I want to choose between BankID and Vipps when logging in for the first time
So that I can authenticate using the Norwegian digital identity provider I am most comfortable with
- Given I open the app for the first time, When the authentication screen loads, Then I see clearly labeled options for BankID and Vipps with recognizable logos and brief explanations
- Given I am on the authentication method selector, When I tap BankID, Then I am navigated to the BankID authentication screen
- Given I am on the authentication method selector, When I tap Vipps, Then I am navigated to the Vipps authentication screen
- +2 more
As a As a Organization Administrator
I want the authentication screen to be fully accessible with screen reader support and clear visual contrast
So that I can log in independently regardless of whether I have visual, motor, or cognitive impairments
- Given I am using VoiceOver, When I navigate to the auth method selector screen, Then each button is announced with its label, role, and a brief description of what it does
- Given I am using dynamic text size set to large, When the auth screens render, Then all text scales appropriately without truncation or overlap
- Given I inspect the authentication screens, When I run a contrast ratio check, Then all text and interactive elements meet WCAG 2.2 AA minimum contrast ratios (4.5:1 for normal text, 3:1 for large text)
- +3 more
As a As a Organization Administrator
I want to log in using my BankID credentials
So that my identity is verified to the same high standard required by Norwegian financial and government services
- Given I have selected BankID on the auth method selector, When the BankID screen loads, Then the BankID provider client initiates an authentication session
- Given BankID authentication is in progress, When I complete the BankID flow in the BankID app or via one-time code, Then the deep link handler receives the callback and the app resumes the session
- Given BankID authentication succeeds, When the callback is processed, Then I am navigated to the role-based home screen without additional steps
- +2 more
As a As a Organization Administrator
I want to log in using Vipps Login
So that I can authenticate quickly with an app most Norwegians already have installed, and optionally share my personnummer with my organization
- Given I have selected Vipps on the auth method selector, When the Vipps screen loads, Then the Vipps API client initiates a login session and opens the Vipps app or authorization URL
- Given the Vipps login flow is in progress in the Vipps app, When I approve the login request, Then the deep link handler receives the Vipps callback and returns me to the peer mentor app
- Given Vipps login succeeds and personnummer is available in the response, When the identity is received, Then the personnummer confirmation widget is displayed asking for acknowledgment before storing
- +3 more
As a As a Organization Administrator
I want to enable Face ID or fingerprint login after my first BankID or Vipps authentication
So that subsequent logins are fast and frictionless while maintaining the security of my initial identity verification
- Given I have just completed BankID or Vipps login for the first time, When authentication succeeds, Then I am offered the option to enable biometric login with a clear explanation
- Given I opt in to biometric login, When I confirm, Then the biometric auth service registers my biometric preference and stores my session token securely
- Given biometric login is enabled, When I open the app on subsequent sessions, Then the biometric prompt overlay is shown immediately instead of the auth method selector
- +3 more