Registering Your Device

The Use Case is here: Register Device

Value provided

  • Establishing an Email Address to serve as Principal
  • Allowing the JWT token to be established for identifying the session
  • Accepting Invitations
  • Sharing of sensitive information only occurs with trusted devices.

Topics

  • Registering other devices should be handled (FUTURE, but don't paint ourselves into a corner)

Auth0

Design Page for Auth0: Auth0 Design

Auth0 provides the following desirable features:

  • Works with Ionic apps
  • Creates JWT tokens outside of contact with my own server
  • Provides Social Logins. (There is a limit of two, but Google and Facebook are good entry points).
  • Infrastructure and support for
    • handling multiple apps
    • logging attempts and failures

Device Identification vs Installation Identification

This folds into the info we want to place within the JWT token.

  • Hardware ID is useful to confirm that the device is indeed the device we think it is, but this can't be used to completely determine the Member — the device may be wiped and then handed to someone else for their use. Need link between device ID (to tell when device has changed or allow multiple devices) and the Member's Principal.
  • Identify a given installation since a particular device may be wiped and then handed to someone else; don't want to think that the new user should be afforded the same identification as the previous user. Discussion conducted here: https://android-developers.googleblog.com/2011/03/identifying-app-installations.html
  • It does make sense to capture the information that is available in the Ionic Platform API: https://ionicframework.com/docs/api/platform/Platform/ within the database as part of registration:
    • Platform type: ios, android, etc
    • Platform form factor: height/width of display

TODO

  • Want to flesh out the steps — diagram? (Use Case Register Device covers much of the steps)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License