Giter VIP home page Giter VIP logo

nl-covid19-coronacheck-app-ios's Introduction

COVID-19 CoronaCheck - iOS

Introduction

This repository contains the iOS release of the Dutch COVID-19 CoronaCheck project.

  • The iOS app is located in the repository you are currently viewing.
  • The Android app can also be found on GitHub.

See minvws/nl-covid19-coronacheck-app-coordination for further technical documentation.


About the Apps

The codebase was building two different app products:

CoronaCheck (referred to internally as the Holder app) was the official app of the Netherlands for showing coronavirus entry passes. With this digital tool, you could a certificate with QR code of your negative test, vaccination, or recovery. This allowed access to certain venues and activities abroad. Or at the border.

CoronaCheck Scanner (referred to internally as the Verifier app) was the official scanner app of the Netherlands for coronavirus entry passes. With this digital tool, you could verify if visitors have a valid certificate of their negative test, vaccination, or recovery. You did this by scanning their QR code. This way, you could safely give access to your venue or activity.

App Requirements

The apps can run on devices that meet the following requirements.

  • Operating System: iOS 11.0+
  • Internet connection (either Wifi or Mobile Data)

Accessibility

The latest accessibility audit can be found at [2023-05-27 Toegankelijkheidsonderzoek CoronaCheck 4.13 (iOS) versie 3.0.pdf](/Accessibility/2023-05-27 Toegankelijkheidsonderzoek CoronaCheck 4.13 (iOS) versie 3.0.pdf)

Feature Overview

CoronaCheck

The app does not work anymore, it just opens informing the user about the current deactivated status, with a link to a website offering the last available information for the corona passes. To check previous features of the app, check out one of the previous releases/tags.

Dependencies

There are a number of Swift Packages in Packages/, which the app target depends on. Here is the dependency graph:

The majority of our third-party dependencies are included as Swift Packages. Here is an overview of what dependencies are used and why.

  • RSwiftLibrary: for strongly-typed, autocompleted resources like images, fonts, colours.

  • SwiftSoup: for parsing and sanatizing HTML

Development only

  • XcodeGen: Command Line tool to generate an Xcode projectfile based on a project.yml description file. The .xcodeproj file that is generated by this tool is not checked into the git repository but has to be created when checking out the code by running make generate_project.

Testing only

  • Nimble: for succinct unit test expressions.
  • SnapshotTesting: for recording the expected state of UI components.

Continuous Integration only

  • Fastlane: for automating the build and distribution pipeline.

Development

Build Requirements

To build and develop the app you need:

  • Xcode 14
  • Xcode Command Line tools (Specifically "Make").
  • Homebrew
  • Git

Getting started

The Xcode project file (CTR.xcodeproj) is not checked-in to git. Instead, we generate it dynamically using XcodeGen based on project.yml.

There is a Makefile which makes it easy to get started (if you encounter any issues running this, please do open an issue):

Simply run make dev from the command line.

It will use Homebrew to install these tools, and will install githooks for:

  • GitLFS (which will download the snapshot PNGs used in our unit tests)
  • XcodeGen (which will update the Xcode project each time you change branches)

It will run bundle install to setup your Ruby dependencies such as fastlane.

Lastly, it will generate and open the Xcode Project for you. You should run the Holder Dev scheme targetting a simulator to get started..

Continuous Integration & reproducible builds

In order to facilitate CI and reproducible builds, this codebase can be built using Github Actions.

Where to begin development

The app uses a few mainstream iOS architectural concepts throughout:

Key classes:

AppCoordinator is the main starting point of the app.

Localized Strings

Localization was managed in a lokalise project.

Localisation assets could be downloaded from lokalise using the command make download_translations.

The Lokalise CLI (which this triggers) downloads separate .strings and .stringsdict files for the Holder and Verifier projects.

We pipe these assets through R.swift as a build phase to create a static list of translated strings, and for convenience (keys shared between both projects are created in the Holder project) we first merge the Holder and Verifier assets together, before the R.swift step runs. This is done by the merge_localizations.sh script. This script also issues a warning if any duplicate keys are detected after this merge (i.e. if a key appeared in both Holder and Verifier, indicating a clash).

Many strings contain HTML tags for basic markup (<b>, <i>, <ul> etc). It was found that it was easy for a copy-writer to make a mistake inputting these HTML tags in their CMS web interface, and if these mistakes were undetected then it could make labels render strangely in the app at runtime.

To combat that, a very basic HTML syntax validator was written which outputs at build time warnings about the common mistakes that it checks for, for example:

Closing a tag <a> which doesn’t match the last opened tag <b>

Colors, Images

R.swift collates the colors and images from bundled asset catalogs, generating a Swift file with an accessor for each asset.

Fonts

Fonts are accessible via Fonts.swift

Contribution process

The development team used to work on the repository in a private fork (for reasons of compliance with existing processes) and was sharing its work as often as possible.

If you plan to make non-trivial changes, we recommend to open an issue beforehand where we can discuss your planned changes. This increases the chance that we might be able to use your contribution (or it avoids doing work if there are reasons why we wouldn't be able to use it).

Note that all commits were signed using a gpg key.

nl-covid19-coronacheck-app-ios's People

Contributors

7hommay avatar bartnijland91 avatar confiks avatar dependabot[bot] avatar dirkx avatar glennchiu avatar iandundas avatar ijansch avatar jjdegroot avatar jorisdehaes avatar nicktencate avatar rool avatar sigio avatar sijtsma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nl-covid19-coronacheck-app-ios's Issues

App should not hide international QR codes after screenshot is taken

Describe the bug, issue or concern

The app hides the QR codes for three minutes after a screenshot is taken. This is presumably because the NL codes change every so often (3 minutes?) to prevent fraud with these codes. This is fine.

However, the app also hides the international QR codes, even though those do not change, or at least not as rapidly as the NL codes, which makes the 3 minute lockout period a nuisance. Additionally, the app informs you that "a screenshot is not a valid certificate" which in the case of the international codes is patently false as no requirement is made for the certificate to be presented in an app by (EU) 2021/953.

The reason this is a nuisance is that some countries are now requiring that QR-codes be uploaded to a system before travel to that country is authorised. For example, Singapore requires this as part of their Vaccinated Travel Lane program, where you get a travel authorisation from their system before you are able to board by uploading the QR code along with some other personal details ahead of time. This can be done in the form of a screenshot from your respective DCC app, but the Dutch CoronaCheck App frustrates this process by unnecessarily hiding the codes after a screenshot is made.

To Reproduce

Steps to reproduce the behavior:

  1. Open app
  2. Open International QR code
  3. Take screenshot
  4. Observe code is hidden for 3 minutes.

Expected behavior

I expect the NL code to be hidden as a fraud prevention measure. I do not expect the international code to be hidden.

Smartphone (please complete the following information):

  • Device: iPhone 13 Pro
  • OS: iOS 15.1
  • Browser N/A
  • App Version 2.4.0 (4211)

Additional Information

I don't own an Android phone but as I understand it, on Android creating a screenshot is entirely prevented and the mechanism of hiding on iOS is done because iOS does not offer the ability to prevent screenshots from being taken. The same applies: international codes should be screenshot-able.

Governance

Add support for deeplinking

Add deeplinking support

To integrate with other apps, please add deeplinking so it is possible to open the CoronaCheck app on a certain screen from another app or from a webpage. For example:

coronacheck://makeappointment to open the app on the 'Make appointment' screen
coronacheck://createqr to open the app on the 'create QR' screen
coronacheck://showqr to open the app on the the screen that shows the QR

Or:

coronacheck://createorshowqr which shows the create QR if none was created, or if already created it shows the QR code directly. If there are multiple QRs available (is that possible?), then show a selection screen.

Register a domain

Registering a domain would improve the user experience even more (this can be done for both iOS and Android). For example when https://downloadcoronacheckapp.rijksoverheid.nl/ is registered, it is possible to create the behaviour that when URL is visited on a phone that doesn't have the app installed, it will redirect to the download page. When the app is installed, visiting this url will open the app.

Rationale

Our product (http://www.thecloseapp.com) is the communication platform between the organizers and the visitors of the FieldLab events. We send instructions to visitors where to download and install the Corona Check app and when to open and show the QR code. The user experience would be greatly improved if we could link directly to screens in the app. This improves the conversion to the Corona Check app, makes it easier to use for visitors of the FieldLab event and thus makes it less error prone for visitors to use.

Changing time on iOS allows QR to be shown

Describe the bug, issue or concern

If you don't have a valid QR yet, for example, it has been 4 days since your 2nd vaccination it currently shows that the QR will become on x date. But if you change the time to the future in your phone's settings, the view QR button becomes clickable and you can see the QR code.

To Reproduce

Steps to reproduce the behavior:

  1. Don't have a valid NL QR yet.
  2. Change the time to the future in the phone's settings
  3. Click the view QR button.
  4. Your code is available.

Expected behavior

The code should not be available.

Screenshots

Before the time was changed:
image

After the time was changed:
image

Note, this is NOT my phone. I already have a valid QR. Nor is the person abusing this app's behaviour.

Smartphone (please complete the following information):

  • Device: iPhone 11
  • OS: iOS15
  • Version: latest version from the app store.

Additional context

A way to fix this issue. Is connect to the API and ask what time it is over there instead of relying on the local time of the device.

Governance

'Add certificate' doesn't work when default browser is other than Safari

'Add certificate' in CoronaCheck app doesn't work when the default browser is other than Safari.

Steps to reproduce:

  1. Change the iPhone's default browser to Edge Canary (also observed on Edge Dev).
    20210720_141439000_iOS
  2. Start app CoronaCheck.
  3. In menu choose 'Add certificate' and choose the kind of certificate you need to add.
    20210720_141958000_iOS
  4. Choose 'Log in with your DigiD'.
  5. Browser (default browser Edge Canary) is opened, go through DigiD login process.
  6. Login process ends with blank page in browser (note this is different in Safari browser, there I got a message asking to switch to CoronaCheck app, which after confirmation switches to the app and loads the certificate).
    20210720_142125000_iOS
  7. Switch back to CoronaCheck app. The wait signal keeps spinning forever and nothing is loaded. No error messages observed.
    20210720_142212000_iOS

Worked around this by temporarily switching Safari to be the default browser, but I expect the app to work with Edge browser as well. Later switched default browser back to Edge Canary, and no issue is observed in showing certificates that are already there. So only with adding a certificate.
Observed on iPhone 11 Pro, software version 14.6, default Edge Canary browser version 93.0.953.0 (also observed by others with default Edge Dev browser)

Please review as CoronaCheck app on iPhone is eligible for improvement.

Thank you and kind regards, inge

Add support for separate URL schemes for different app packages

Actual behaviour

The same URL scheme is used for all app packages (Acc, Prod, Test, App Store, Debug, Release): coronatester-app-dev

Expected behaviour

I would expect different URL schemes for different app packages.

Rationale

When using the same URL scheme for different app packages, the latest installed app will be the one registered to that URL scheme. Furthermore, the '-dev' suffix seems to indicate it should not be used for production. And it is (when installing the CoronaCheck app version 1.1.3 through the App Store, then coronatester-app-dev:// opens the app).

Suggestion

My suggestion is to generate the plist files based on a template plist file. From the template file a file is generated for each specific package, when that package is built. This can be for example done by replacing a template value.

This approach can be reused in the future for other plist entries that need to be differentiated between different packages.

I can create a pull request with this behaviour, please let me know if this would contribute to the project.

'Fietsje' takes few seconds to start moving on national QR code, making hard to check if its screenshot

Describe the bug, issue or concern

See title, the little bike takes few seconds to start moving on national QR code, and pauses between loops

To Reproduce

  1. Have an older model iPhone to make it more noticeable (6s, SE 2020)
  2. Display national QR code
  3. Observe the screen can remain static during the time it takes to scan the QR code, there's a pause when it loops.

Expected behavior

Same as international QR code: always have some movement (multiple people on the conveyor belt). don't loop with a break in between. Or have multiple bikes that loop along the screen instead of one with a start/stop motion.

Screenshots

N/A.

Additional context

This has the potential to undermine the security of the app. The scanner app is fast enough that there could not be any movement during the 'scanning' period and bouncer might not have time to observe the movement as they're checking IDs.

Not as much of an issue on Android as screenshots aren't as easily made.

Governance

Vaccination details data is incomplete, inconsistent and incorrect

Describe the bug, issue or concern

I've received two vaccinations via GGD and see them twice in the app (RIVM + GGD).

When comparing the vaccination details with coronacheck.nl, data seems to be missing or inconsistent in the iOS app. Also within the app, data is incosistent between the vaccination details and the International QR Code details.

  • GGD: 2nd dose in app mentions 'no' with last doses, while it is. The 'no' is confusing, it might lead to users believing their QR code is invalid. RIVM one mentions 'unknown', which is slightly better. The international QR code does say 2/2 doses
  • RIVM vaccine manufacturer and type mentioned in the app, but not on coronacheck.nl
  • RIVM certificate identifier does not match, but seems to be different every time I try, both on the website and in the app? Probably regenerated on every request, not sure.

To Reproduce

Steps to reproduce the behavior:

  1. Get fully vaccinated
  2. Check if vaccinations are listed when adding a vaccination certificate
  3. Check details of vaccinations
  4. Create a QR code and check if it says 2/2 doses
  5. Log in to https://coronacheck.nl/nl/print/
  6. Check if vaccinations are listed when creating a vaccination certificate for priting
  7. Check details of vaccinations, compare with (3)

Expected behavior

  • 'last dose' should say 'yes' when the vaccination is the final one required
  • Information on coronacheck.nl and the CoronaCheck app should be presented in a consistent manner, i.e. same details on both channels.

Screenshots

GGD

App:
GGD iOS app

Website:
GGD coronacheck.nl

RIVM

App:
RIVM iOS app

Website:
RIVM coronacheck.nl

QR in app

IMG_1661

Desktop (please complete the following information):

  • OS: Mac OS X 11.5
  • Browser: Chrome 92.0.4515.107

Smartphone (please complete the following information):

  • Device: iPhone7
  • OS: 14.7
  • Browser: Chrome 92.0.4515.90

Additional context

Moved from #40 to a separate issue, since #40 got closed.

Governance

Details button Dutch QR Code screen not working

Describe the bug, issue or concern

After updating to version 2.7.0, the details button of the Dutch QR code screen is not working.
If you press on the details button, it will have the "pressed state". But no detail screen appears.

Note: the international QR code details button does work.

Details:

  • Vaccination certificate (3 doses)
  • iOS 15.2
  • iPhone 13 Pro
  • App version 2.7.0 (build 5552)

Governance

Sync CoronaCheck releases to GitHub before roll out.

Currently CoronaCheck version 2.1.0, 2.1.1 and 2.1.3 are rolled out through the App Store, but not yet available in this GitHub repo. This undermines the open-source principals. Source code should be made first available on GitHub, before pushing to Apple and rolling out, so that it can be independently checked.

Ping @Rool @iandundas

The app says I have no connection while I’m at full 4G

Describe the bug, issue or concern

Just installed and opened the app, and it keeps spinning saying "we'r starting the app". And after some seconds it tells me I'm not connected to the internet

Expected behavior

I would expect the app to handle better the check over connectivity.

Screenshots

image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: iPhone 12 Pro
  • OS: 14.6
  • Version 1.4

Additional context

I opened the app while being in Italy.

Governance

year Date is shown as 2564 when language of device is thai.

when the iphone is set to language thai, the year is formatted in thai year

It really is 2565 in thailand, so that is correct. However this confuses ANY european user.(in my case the german restaurant i sat down in) The data should ALWAYS be in european date format DD-MM-YYYY

E.g.

To Reproduce

Steps to reproduce the behavior:

  1. Go to 'language settings '
  2. Set language to ไทย (thai)
  3. Restart corona check app. '
  4. in the international tab, the vaccination year and the birthdate are in thai year ( currently it is 2565 in thailand.). Note that thai passports show European year.

Expected behavior

All dates should be in european format. (android is ok)

Some falsified EU DCC are still not rejected by CoronaCheck _scanner_

For which there is no issue tracker.. Neither for the DCC Scanner, for border patrol.

Example leaked EU DCC QR code: https://github.com/ehn-dcc-development/hcert-spec/discussions/105#discussioncomment-1591595

Already reported it here about a week ago: https://twitter.com/henkpoley/status/1457713831514451972?s=21

Since the list is dynamically downloaded, I suppose that report never really went anywhere (going back to, no public issue tracker).

App shows 1/1, 2/1, 3/1 vaccinations

Describe the bug, issue or concern

In the international section of the app, my app shows both on the overview and the QR-code “scroller” that I have 3/1 vaccinations. This is also reflected in international the QR-code and seen by other international scanners.

To Reproduce

Steps to reproduce the behavior:

  1. Have received 3 vaccinations
  2. Go to the international overview
  3. See that 3/1 vaccinations are received

Expected behavior

The app shows 1/3, 2/3 and 3/3 for the vaccinations.

Screenshots

5D8B9C5E-D3D4-48A6-895A-B2BCC6228507

Smartphone (please complete the following information):

  • Device: iPhone 12
  • OS: iOS 15.2.1
  • Browser: Safari
  • App Version: 2.8.0 build 5949

Additional context

Add any other context about the problem here.

Governance

Onschuldige tikfout Sources/CTR/Infrastructure/Services/WallerManager.swift: GreenCrards

Describe the bug, issue or concern

Ik was de code aan het lezen, ik zag in Sources/CTR/Infrastructure/Services/WallerManager.swift deze regel (nu regel 250):

				for case let greenCard as GreenCard in greenCrards.allObjects {

Ik begreep niet helemaal hoe je dit zou kunnen compileren met de 'greenCrards' tikfout. Maar ik zie dat dit ook al in de regel daarvoor misgetikt is:

			if let greenCrards = wallet.greenCards {
				for case let greenCard as GreenCard in greenCrards.allObjects {
...

				}
			}

Zo is het dus een wat vreemde maar verder onschuldige tikfout.

"universal link" feature for event-organisers

Input ICTRecht tijdelijke wet testbewijzen covid-19 12032021.pdf

Please find the (dutch) opinion article about an improvement to the coronacheckapp to support large venues and their organisers. This case is about AFC Ajax NV / Johan Cruijff Arena, but multiple large event-organisers and ticket-companies would be able to support this flow.

Our stadium is ready for 55.000 fans, the current coronacheck-app lacks integration with the organiser and fans.
In the current proposal it would require us to employ at least 250 (untested) extra stewards to manually scan-and-verify all credentials. Also if credentials don't match or no test is done the fan will only find out at the location, we think that should be much more in advance to prevent unnecessary travel.

Our concrete request is support "universal links" for the coronacheck app (i.e like "Idin" and "Ideal").
fan-flow:

  • Fan buys a ticket (or is seasonticket holder) in Ajax-app
  • Fan receives notification in ajax-app with ticket (not displaying QR-Code)
  • 24 hours before event-start fan is notified in Ajax-app to setup/activate coronacheckapp
  • when fan clicks on the "activate link" a universal link is called with fan's initials, birthday-day and birthdate-month
  • coronacheck app opens automatically
  • coronacheck app asks for permission to send OK to ajax-app
  • coronacheck app returnURL to ajax-app with "OK" notification.
  • ajax-app never sends the coronacheck data, OK notification is only to unlock the QR at the local device! (if user would switch device or share ticket they are forced to do the activation process again!)
  • ajax-app displays QR code for fan when arriving at stadium ground

This way is in our opinion according to all privacy laws and this principle has been tested up to 12K fans during the start of the season with 5 matches (only corona questions instead of coronacheck app).

Add documentation on how to build

Context

I'm running into issues building and I suspect more people will run into this. A short readme.md should prevent this. The issue I see is an error during compilation: No such module 'Clcore'

Reproduce

I am running into issues during the build. Steps I followed:

sudo bundle install
pod intall

Then opening CTR.xcworkspace using Xcode 12.4. When compiling (for both for Simulator and a real device) I get a 'No such module 'Clcore'

Expected

I would expect a short readme explaining the requirements, dependencies and steps to take to build.

Paper certificate is not added if there's already a certificate in the app

Describe the bug, issue or concern

See title. If there's already a certificate in the app, adding a paper certificate seems to work but nothing happens (i.e. it is not stored).

To Reproduce

Steps to reproduce the behavior:

  1. Have a different vaccination certificate already in the app, for example one that's not (yet) valid in NL
  2. Acquire a paper certificate from HKVI, e.g. from GGDrU.
  3. Add this paper certificate by scanning QR-code/entering token
  4. See the "old" certificate appear in the app instead of the new one.

Expected behavior

One of two things: either an error message stating there's already a certificate installed, or a question asking if it should be overriden.
Of course it'd be perfect if the app would support multiple certificates but this is on the roadmap IIRC.

Screenshots

N/A

Smartphone (please complete the following information):

  • Device: iPhone 12
  • OS: iOS 14.7
  • Browser: Firefox
  • Version: 2.2.0 (build 2893)

Additional context

Workaround: delete app, reinstall and then scanning works fine.

Governance

International QR code 1/1 dose instead of 2/2. 1 dose hospital 1 dose ggd

Describe the bug, issue or concern

When you get 1 dose in the hospital and one dose by the GGD the international qr code says 1/1 dose instead of 2/2.

E.g.

To Reproduce

Steps to reproduce the behavior:

  1. Get vaccination in hospital
  2. Get second vaccination by GGD
  3. After few days check mijn.rivm.nl in my case both vaccinations are listed
  4. Receive vaccination data. When i receive the vaccinations i see both vaccinations listed by RIVM and the last one double. So in total 3 records. 2x Rivm, 1x GGD (last dose).
  5. Go to international QR code and press info button. Only 1/1 dose is listed.

Expected behavior

Since mijn.rivm is having 2 vaccination the international qr code should represent both doses.

screenshots

IMG_5471
IMG_5470

Desktop (please complete the following information):

  • OS: IOS latest version
  • Coronacheck 2.1.7

Smartphone (please complete the following information):

  • Device: iPhone 12

Additional context

Tried uninstalling and reinstalling app.

Governance

Vaccination completion reason omitted in DCC Details

While adding a vaccination certificate the "completionreason" is displayed, however this label is not shown in the details page of the DCC (International QR).
In cases where the first series was completed by 1 dose mRNA Pfizer after a corona recovery the completion reason is given by string holder_eventdetails_vaccinationStatus_recovery ("ja (eerder corona gehad)" / "yes (I’ve had coronavirus earlier)") when adding the vaccination certificate. After adding both this certificate and the booster one the "Dose %@/%@" label is given as "1/1" on the first certificate and "2/1" on the second certificate, which is to be expected.
However, this causes issues outside the Netherlands, primarily in Germany, as the DCC page does not include a reference to a 3rd dose in this case, which most people expect to look for and thus will often reject a "2/1" labeled certificate where boosters are mandatory (e.g. 2G+). In order to solve this confusion it would be helpful to be able to open the details and show that this is due to only receiving 1 dose the first time. As far as I'm aware (one of) the German App does indicate this when displaying the DCC.

To Reproduce

  1. 1st series completed by corona recovery and 1 mRNA Pfizer dose
  2. 1 booster dose
  3. Add vaccination certificates
  4. Open details of international qr page of first certificate

Expected behavior

holder.event.about.vaccination.completionreason and holder_eventdetails_vaccinationStatus_recovery labels shown in DCC vaccination details when applicable (e.g. earlier corona recovery + 1 Pfizer dose + optionally booster)

Governance

App shows 1/1 dose for dual-vaccinated after covid

Describe the bug, issue or concern

The app currently shows 1/1 vaccinations after retrieving two vaccinations if a certificate of recovery is also present. This will certainly cause problems with countries that require two vaccinations even if recovered, e.g. UK. This is new behaviour introduced (I guess) some time in the past week or so.

E.g.

To Reproduce

Steps to reproduce the behavior:

  1. Get covid and recover
  2. Get fully vaccinated (2 shots)
  3. Add Recovery certificate
  4. Add Vaccination certificate
  5. See 1/1 dose instead of 2/2 doses.

Expected behavior

I expect the vaccination certificate to always show the exact amount of doses received (and retrieved from GGD/RIVM), regardless of any other information being available. I.e., if two (or three with a booster) shots were received the app should always show that amount. The only time information on recovery should be used is if a single shot was received.

Screenshots

n/a

Smartphone (please complete the following information):

  • Device: iPhone 13 Pro
  • OS: iOS 15
  • Browser: Safari
  • Version: most recent

Additional context

I switched phones this week and the old phone still shows 2/2 from a certificate retrieved before this week.

Governance

Certificate time uses clientside date validation

Dear developers,

It has come to my attention that the Corona check app uses client side date validation. This seems to be an oversight!

Use case:
I have my second shot, on July 30th, the app recognizes this and tells met it will be 13 days until my Dutch certificate becomes valid. I change my local phone time to 15th of August, and voila, the app displays a (valid?) code.

Please fix.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.