Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Show QR code with new app password and other settings to allow easier client setup #429

Closed
ChristophWurst opened this issue Jul 18, 2016 · 31 comments
Assignees
Labels
1. to develop Accepted and waiting to be taken care of enhancement
Milestone

Comments

@ChristophWurst
Copy link
Member

Steps to reproduce

  1. Go to personal settings
  2. Create a new app password

Expected behaviour

Configuring a client should be as easy as possible. I'm super lazy and I don't want to type the server URL, username and password.

Actual behaviour

You have to type the URL, user and password and make typos.

Nextcloud version:
master

In the future, mobile clients could then integrate a QR code reader and make the device setup super easy.

cc @jancborchardt @MorrisJobke @LukasReschke @AndyScherzinger

@ChristophWurst ChristophWurst added enhancement 1. to develop Accepted and waiting to be taken care of labels Jul 18, 2016
@ChristophWurst ChristophWurst added this to the Nextcloud Next milestone Jul 18, 2016
@AndyScherzinger
Copy link
Member

AndyScherzinger commented Jul 18, 2016

Sounds good to me 👍
Besides I also have custom URLs on my agenda (haven't opened a ticket yet) which will allow the app to open a certain URL which contains the server address which will then launch the apps login screen with the server address being prefilled :)

One thing though. In the Android ecosystem we should not ship a QR code scanner but integrate with a QR code scanner (which does have the downside of the scanner having to be installed on the device already...).

(EDIT: I removed "to develop" since it should first go to "approved")

cc: @tobiasKaminsky @przybylski

@AndyScherzinger AndyScherzinger removed the 1. to develop Accepted and waiting to be taken care of label Jul 18, 2016
@jancborchardt
Copy link
Member

As said by @AndyScherzinger already, the giant downside of this is that a QR code scanner is needed. Building one in the app is probably a ton of work, and integrating with an existing one seems a bit pointless since … well, let’s face it, no one really uses QR code readers. ;) (That is, a tiny technical minority.)

Just putting in the server address on the mobile and then doing something with OAuth or such would be a much better time investment and valuable for everyone I’d say. cc @LukasReschke @karlitschek

@AndyScherzinger
Copy link
Member

Android (and in a slightly similar but not exact same way) has the capability for our app to react to certain URLs. So we could implement the server side generation of emails with hyperlinks including this URL send to the potential users, which could then just click on the link, choose Nextcloud as the app to open the url, login screen appears with pre-filled server address.

Would this be something worth implementing?

@jancborchardt
Copy link
Member

Not sure since this is kind of a strange flow:

  1. Download the app
  2. Open the app
  3. Ah no, open the web interface in the mobile browser instead
  4. Go to the settings and understand that you can click the link to have your stuff prefilled
  5. Okidoke

It seems actually more cumbersome than just the flow now:

  1. Download the app
  2. Open it
  3. Put in the address, username and password
  4. Go

@tflidd
Copy link
Contributor

tflidd commented Jul 18, 2016

I've seen the QR code-configuration in the bittorrent sync-client (owncloud/core#12071). It is really nice to use. Entering long addresses, usernames and passwords is not very handy on mobile devices (however it is only done once).

@AndyScherzinger
Copy link
Member

@jancborchardt it is slightly different ;)

  1. Recieve an E-Mail with a link
  2. Click on the link
  3. Use Nextcloud to open the link
  4. Put in user/pwd

We can also define a fallback URL wihtin the URL, so we will route the user to the play store :D - for details please see: https://developer.chrome.com/multidevice/android/intents#example

This makes total sense imho for the scenario where an admin would setup a Nc instance and then send out an e-mail to all potential users and it also makes sense for mailings whenever in an enterprise scenario a new employee joins the company, gets and email to his cellphone and everything works from there 💃

@tobiasKaminsky
Copy link
Member

Why not doing both?
I imagine that integrating the qr code thing is not that much work...

@AndyScherzinger
Copy link
Member

The QR code thing is rather easy I guess (calling an Intent for results with a pre check if the intent is present)

@tobiasKaminsky
Copy link
Member

well, let’s face it, no one really uses QR code readers. ;) (That is, a tiny technical minority.)

I doubt so, in some motorala phones a QR scanner is already built into the camera and some of my friends use it to distribute their wlan...

@ChristophWurst
Copy link
Member Author

It seems actually more cumbersome than just the flow now:

  1. Download the app
  2. Open it
  3. Put in the address, username and password
  4. Go

This is not true in some cases as that won't work with the new app passwords if 2fa is enabled for a user. There is no way around using an app password in that case and you'd have to either generate/copy the app password from your mobile phone's browser or create the password on your PC and type the password into your phone.

One thing though. In the Android ecosystem we should not ship a QR code scanner but integrate with a QR code scanner (which does have the downside of the scanner having to be installed on the device already...).

Right, ideally apps should not ship a QR code scanner. However, apps like Signal or the OTP Authenticator have a reader built-in and I like that a lot, UX-wise. Actually, I was inspired by the easy setup of the Signal desktop client – you scan a QR code with your phone and everything else is set up for you automatically. I thought we could do something similar.

@rullzer
Copy link
Member

rullzer commented Sep 4, 2016

I think a QR code would be fine. I mean we also have a QR code if people enable the TOTP app.

Basically you will have 2 types of users (of course very much oversimplified but still).

  1. Users that use the same password everywhere and don't care. Nothing changes for them.
  2. Users that want a secure setup. Want tokens. Want 2FA enabled and all that.

This app passwords is for the second group. Of course users could become part of the second group by force of the admin. But that is not a problem we can solve. Same as if the admin requires passwords to be 32 chars long.

Now if I'm part of the second group I want my stuff to be as secure as possible. Which means long app passwords! Which is a problem if I'm typing it. But absolutly fine if I can use a QR scanner.

@SomeStrangeName
Copy link

Using QR for setup is some state of the art. Compare with FritzBox WLAN setup or Signal desktop client sync, and it increases usability dramatically :)

@AndyScherzinger
Copy link
Member

The feature I am currently working on for Android will/should be able to handle the following URLs (nextcloud://... hasn't been tested yet, but http://... and https://... works). So Nextcloud will be offered as Application to open the URLs following a simple pattern. The follwoing URLs are within the pattern and can be read by the implementation:

http://logindata.nextcloud.com/user:testuser123&password:testpassword123
https://logindata.nextcloud.com/user:testuser123&password:testpassword123
nextcloud://login/user:testuser123&password:testpassword123
http://logindata.nextcloud.com/user:testuser123&server:testserver123
https://logindata.nextcloud.com/user:testuser123&server:testserver123
nextcloud://login/user:testuser123&server:testserver123
http://logindata.nextcloud.com/server:testserver123&user:testuser123
https://logindata.nextcloud.com/server:testserver123&user:testuser123
nextcloud://login/server:testserver123&user:testuser123
http://logindata.nextcloud.com/server:testserver123&password:testpassword123
https://logindata.nextcloud.com/server:testserver123&password:testpassword123
nextcloud://login/server:testserver123&password:testpassword123
http://logindata.nextcloud.com/password:testpassword123&user:testuser123
https://logindata.nextcloud.com/password:testpassword123&user:testuser123
nextcloud://login/password:testpassword123&user:testuser123
http://logindata.nextcloud.com/password:testpassword123&server:testserver123
https://logindata.nextcloud.com/password:testpassword123&server:testserver123
nextcloud://login/password:testpassword123&server:testserver123
http://logindata.nextcloud.com/user:testuser123
http://logindata.nextcloud.com/password:testpassword123
http://logindata.nextcloud.com/server:testserver123
https://logindata.nextcloud.com/user:testuser123
https://logindata.nextcloud.com/password:testpassword123
https://logindata.nextcloud.com/server:testserver123
nextcloud://login/user:testuser123
nextcloud://login/password:testpassword123
nextcloud://login/server:testserver123
http://logindata.nextcloud.com/user:testuser123&password:testpassword123&server:testserver123
https://logindata.nextcloud.com/user:testuser123&password:testpassword123&server:testserver123
nextcloud://login/user:testuser123&password:testpassword123&server:testserver123

@jancborchardt
Copy link
Member

Since the Signal example was brought up: They ship their own QR code reader. I think qr codes aren't necessarily bad, but requiring someone to install a separate app to do that is cumbersome. Especially if you don't expect to be needing it.

Hence - if we use QR codes in one of our main flows, we should properly integrate it by shipping the app with a QR code reader in it. Or not do it at all.

@ChristophWurst
Copy link
Member Author

Hence - if we use QR codes in one of our main flows, we should properly integrate it by shipping the app with a QR code reader in it. Or not do it at all.

Yeah, let's ship a reader 👍

@nextcloud-bot nextcloud-bot removed the stale Ticket or PR with no recent activity label Oct 2, 2018
@ChristophWurst ChristophWurst added the 1. to develop Accepted and waiting to be taken care of label Nov 28, 2018
@ChristophWurst ChristophWurst added this to the Nextcloud 16 milestone Nov 28, 2018
@David-Development
Copy link
Member

David-Development commented Jan 9, 2019

For the sake of completeness here is the link to the Android PR: nextcloud/android#3383

@tobiasKaminsky Your PR implements this feature, doesn't it? (the android side of it)

@tobiasKaminsky
Copy link
Member

@David-Development, yes 👍

@e-alfred
Copy link

App passwords are needed for other apps on mobiles as well (like for example DavX/Davdroid, News apps, SMS app, bookmarks apps), so installing a QR code reader app shouldn't be a big deal. These apps probably won't integrate well with other solutions. Copying the QR code from one app to another is probably the easiest way to handle this.

A 3rd-party app called Phonetrack implemented this using a JQuery QR code library already and it works extremely well:

https://gitlab.com/eneiluj/phonetrack-oc/commit/37582661bb30294eb18b2c5204f2eefd5e8059c2
https://github.com/jeromeetienne/jquery-qrcode

@MorrisJobke
Copy link
Member

Let's move it to 17.

@ChristophWurst
Copy link
Member Author

PR is at #14450

@marinofaggiana
Copy link
Member

Who can gave me a test ambient for this ? (I have my personal provider session down)

@ChristophWurst
Copy link
Member Author

bildschirmfoto von 2019-03-04 11-19-37

^ does that work for you?

@Aurnytoraink
Copy link

Hey, I just discover this issue and thought that I will be better if we can directly generate a QR code by clicking the profile icon > Connect a new device, rather than go in the setting, security, then new device

@MorrisJobke
Copy link
Member

Hey, I just discover this issue and thought that I will be better if we can directly generate a QR code by clicking the profile icon > Connect a new device, rather than go in the setting, security, then new device

Mind to open a new ticket about this UX topic?

@Aurnytoraink
Copy link

Mind to open a new ticket about this UX topic?

Sure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of enhancement
Projects
None yet
Development

No branches or pull requests