Coder Social home page Coder Social logo

mattrubin / authenticator Goto Github PK

View Code? Open in Web Editor NEW
837.0 837.0 113.0 52.08 MB

Two-Factor Authentication Client for iOS

Home Page: https://mattrubin.me/authenticator

License: Other

Swift 95.11% Objective-C 0.46% Shell 0.61% Ruby 1.30% HTML 2.51%
2fa authenticator ios one-time-passwords swift two-factor-authentication

authenticator's People

Contributors

adhintz avatar beaucollins avatar dependabot[bot] avatar kruton avatar mattrubin avatar schweinepriester 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  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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

authenticator's Issues

Getting started manual??

Am I the only one who has no idea where to start?? I install the app, get a screen that says No Tokens, Tap + to add a new token. Ok, so no option except to hit the plus sign. I hit it and I have to scan a token...that's where I"m stuck. Where do I get a token? The only reason I'm doing all this is because Coinbase sent me an email saying they recommend I use a better 2 factor authenticator than text messages and recommended "something like google authenticator." Well, that app gets horrible reviews. So here I am - googling for help doesn't produce a getting started manual either. I'm trying...really I am. Thanks. -Julie

Inform new users about backup limitations

By design, Authenticator stores tokens in the device's local keychain, which does not sync between devices. Apple only backs up these keychain items in an encrypted iTunes backup, so some users (#82, #133) who get new phones and restore from iCloud backups have lost their tokens.

Until a secure backup and restore solution is implemented, new users should be informed of the limitations of backup and lack of syncing. It's not a complete solution, but it will hopefully prevent the unpleasant surprise of discovering one's tokens are unexpectedly gone.

Keychain storage

When i delete the authenticator app on my iPhone and reinstall the app, all of the entries get restored! This is great because the Google Authenticator used to loose all of my entries and they are not easy to re-create.

However, when I install the app on my iPad, it doesn't create the same entries as on the iPhone. Is the authenticator data specific to the device? I would have expected them to be restored to the iPad. In an emergency, if I lost the actual device and replaced with a new device, would it properly restore the entries from iCloud Keychain as long as I am logging in with the same iCloud ID?

authenticator for outlook/microsoft

I have been using authenticator app for my gmail and hotmail accounts for few years but after getting a new phone, I can not find the QR code or the secret key to scan token for Microsoft from the new phone. Please help.

Watch App

This is not an issue, but rather wanted to discuss the possibility of adding a watch app.

I've spent some time today familiarising myself with the code. I wanted to get a feeling for what it would take to make a watch app (similar to Authy, but more stylish, like Authenticator).

I wanted to open this issue just to discuss whether you would be interested in such a pull request, and also if you agree on how to achieve it. Basically I think what needs to be done is:

  • Make Base32 framework include watchos arch.
  • Make OneTimePassword include watchos arch.
  • Write token serialisation to NSData in TokenStore (My proof of concept did one that just sends the PersistedToken identifier and the Token URL representation).
  • Put in synchronisation hooks, so every update to TokenStore also triggers a push of the state to the watch.
  • Deserialize the NSData into proper PersistedToken since the OneTimePassword framework will be linked with the watch app as well.
  • Put in pull-hooks so watch app can initiate the state push (on first run for instance).
  • Write a Component with Model/View/Controller for a table overview of tokens.
  • Write a Component with Model/View/Controller for a "Token View" which shows the current token and count down.
  • Use CoreData or something simpler to store the tokens on the watch to allow watch to work without the iPhone in range.

Watch apps are a bit messy with the dual targets (app and extension) and code org, so I'm a bit wary of messing up your nice structure. We need some detailed code reviewing to ensure it's kept nice.

Contribution Difficulty

@mattrubin,

I really enjoy the clean simplicity of this app and would like to contribute to some of the new features that have been requested (TouchID/PIN, Notification Center Widget, possibly a WatchKit addition), but I'm not sure where to start.

Cloning and building the master branch resulted in build failures due to the dependencies. It's difficult to start contributing since dependencies are managed by both Carthage and Cocoapods. I see that you're transitioning to Carthage; possibly move SVProgressHUD so a single carthage bootstrap gets contributors up and running.

Also, a CONTRIBUTING.md file would be helpful like Github's guide states:
Contributing to Open Source

Authenticator Not Working

Hello,
I tried to get an authentication code today. I tapped on my app on my iPhone as usual and instead of a code appearing, the message "No Tokens" "Tap + to add a new token" appears. How do I fix this so that I can get to my email account?
Kind regards,
Jennifer

Make codes easier to read.

By spacing out the numbers in a code they will be easier to read especially for someone with dyslexia.

So 123456 becomes 123 456, 1234567 is 123 4567 and 1234 5678 for example.

Tokens are sometimes copied when scrolling the token list

On a list of about ten tokens on an iPhone 7, sometimes a token copy is triggered while scrolling the list up. This seems to happen much more often when scrolling up than when scrolling down. At least one App Store user has reported encountering the same issue.

Build failed in Xcode 7.3.1

Hi,

I followed the "Getting Started" instructions but I'm getting errors when I build the Authenticator scheme in Authenticator.xcworkspace:

:0: error: underlying Objective-C module 'OneTimePassword' not found
/Users/user/pathtoiosdir/Authenticator/Carthage/Checkouts/OneTimePassword/OneTimePassword/Token+URL.swift:27:8: error: no such module 'Base32'
import Base32

What am I doing wrong?
(Xcode 7.3.1)

Accidently removed account from Authenticaor now account/app cannot be accessed

Hi,
I am using Authenticator and i added access for an account/app on the Authenticator app and my son deleted it from the Authenticator app. Now access to that app is blocked, because it is not showing up on Authenticator.

Is there anyway to gain access to the app/account again? It was a Roku channel for which i added a code managed by Authenticator.

Scanner View Controller continually called

Downloaded the latest version and when I click the + button the QR reader view is continually called. E.g. the new view opens over and and over again. Can click cancel and get back to the main screen, but cannot add tokens via QR code or even manually.

I've tried to workout what the issue is but I'm kind of new to coding and I just broke it even more.

Using iPhone 6 with iOS 9.2.1.

Question: Why three two-digit groups?

The app used to have two three-digit groups (123 456) and a recent(ish) change made it three two-digit groups (12 34 56). What was the motivation behind this?

I'd love the option to put it back to 123 456 as that is easier for me to remember.

Love the app! Super simple and nothing more than you need. (Plus the fact you can't export is perfect, the way it should be!)

support advanced options during a manual add

i would love to have an input, or an options for an advanced screen with inputs for other config options. i do know that i can set all the config i want through making a qr code and scanning it. but id like to not have to do that.

i put my battle.net account in here. they do 8 digits instead of 6. so i had to make a QR code and scan it. not that big a deal but i would have loved to just put in the secret and punch in digits: [ 8 ]

I lost all the codes

Merci d’avoir choisi Apple.
Cher Monsieur Christian Blouin,

Merci d’avoir contacté l’iTunes Store. Mon prénom est Anna et j'aurai le plaisir de prendre en charge votre requête.

D’après votre e-mail, je comprends que vous avez perdu tous vos codes avec “authenticator”. Vous voulez savoir comment faire pour récupérer vos codes.

Je comprends tout à fait l’importance de pouvoir y avoir accès afin de profiter pleinement de votre application.

Rassurez-vous que je vais faire de mon mieux pour trouver la meilleure solution possible qui convient à votre cas.

En effet, pour obtenir de l’aide à ce sujet, veuillez contacter le développeur de l’application. Les développeurs sont la meilleure ressource dans ces situations car ils peuvent examiner le problème avec leurs outils. Voici un lien vers son site Web :

http://mattrubin.me/authenticator/

Sachez que c’est le développeur qui pourrait vous aider à résoudre votre souci de manière definitive.

Pourtant, si votre problème persiste, veuillez nous le fare savoir.

Nous de notre part, nous ne pouvons qu’examiner la possibilité d’un éventuel remboursement. En ce cas, si vous avez fait des achats depuis cette application que vous n’avez pas reçus ou auxquels vous n’avez plus accès, veuillez me communiquer leur numéro de commande. Pour retrouver le numéro de commande d’un achat, procédez comme indiqué dans l’article suivant :

http://support.apple.com/fr-fr/HT204088

Veuillez également m’indiquer l’identifiant Apple lié au compte depuis lequel vous avez acheté l’application en question.

Je vous remercie de votre coopération. La résolution de votre affaire est importante à mes yeux et j’attends votre réponse.

Au plaisir de vous lire, je vous souhaite une excellente journée.

Cordialement,

Anna Arkolaki
Le service clientèle de l’iTunes Store
http://www.apple.com/support/itunes/ww
Apple Inc., de la part de Apple Distribution International
NB: Notre département fonctionne du Lundi au Dimanche de 8:00 à 20:00.

On Feb 10, 2017, at 23:00 christian blouin [email protected] wrote:

Produit iTunes Store

Catégorie d’assistance Gestion des comptes
Rubrique d’assistance

Informations supplémentaires

Choisissez l’iTunes Store ou l’App Store de votre pays : Canada

Commentaires supplémentaires
Itunes,
Dans section sauvegarde
avec cet ordinateur j'ai fait sauvegarde maintenant.
avec mon iphone 6+
je ne voie plu mes codes avec authenticator, j'ai tout perdu les code !!! J'ai fait restaure maintenant aucun résulta positif pas de code dans mon application,comment faire pour retrouvez .
Merci

Additional Comments

Itunes,
In saving section
With this computer I made backup now.
With my iphone 6+
I do not see more my codes with authenticator, I lost all the codes !!! I have now restored no positive result no code in my application, how to find it.
Thank you

Excessive haptic feedback when scanning invalid QR code

When an invalid QR code is scanned, is triggers an error message with haptic feedback. As currently implemented, as long as the camera is pointed at the invalid code, it will trigger this error response for every frame of video that is processed. Repeatedly triggering the visual error message is fine, but repeatedly triggering the haptic feedback causes the phone to vibrate excessively.

Moved to a new phone.. now what?

I just moved to a new iPhone, and no longer have the old one. Authenticator app is showing "no tokens". I'm stuck and locked out of one of my apps that requires 2FA. Anything I can do?

Add a search filter

Hey Matt!
Just chimed you on Twitter.

What are the chances you could add a search filter. It would make it way easier to find what you were looking for if you had 100 different accounts set up, etc.

Backup/Restore (onto new devices)

Hi,
sorry for using this tool, but what is happens if I get a new iPhone? Is the content also lost after Restoring the iCloud Backup? Till now i use the the Google Authenticator app and here is all lost.
Thanks
Andreas

App CPU usage

When the app is at rest running under a debugger with 11 tokens it uses around 40% CPU

sans titre

a tiny potential bugs

In ButtonHeaderView.swift, line 60:

titleLabel?.textColor = UIColor.otpForegroundColor

This doesn't work with Swift 3, I am trying to change the color scheme, but the "Advanced Options" button is not reflected. I traced the code and find this line should be replaced with:

self.setTitleColor(UIColor.otpForegroundColor, for: UIControlState.normal)

Cheers

Tokens can't be deleted when filtering

When the filter is active, tokens can't be deleted:

  • Swipe-left-to-delete causes the delete button to flicker and then disappear.
  • Tapping the circular delete button when in edit mode does nothing.

I suspect that the cause is the view model update reloading the table view when filtering. Since this update happens on every tick, a cell is reloaded immediately after entering "delete mode," causing the delete confirmation button to disappear.

Remove swipe to delete

Two-factor entries probably don't change very often. It's not necessary to make deleting them an easy task. In fact, it increases the risk of accidentally deleting an item.

I suggest we remove delete by swiping. One can still delete by tapping the "Edit" button in the bottom toolbar.

I till think #198 should still be implemented too.

lost the authentication code

I have created an account at homeblockcoin.com. id is edgalraphael and email is [redacted]. I set up an authentication code to protect my account but I lost my phone so I could not go to Id edgalraphael. hope you can help me remove this authentication code. Thank you very much

Token sync problem

Hi,

For few sites like slack.com the token generated is working perfectly. But, for some other sites, the token generated is working only after some time (i.e I need to wait for around 10secs). Request you to look into the issue.

Thanks,
Nagarjuna

I Accidentally Deleted An "Old" Code. It Was The CURRENT One. Locked Out.

The website I created a super safe password for ended up unable to read the app at first. So I tried again. It was able to read it the second time. So I figured I would delete the unreadable code to prevent future mishaps. Turns out, I somehow accidentally deleted the working code. Now, the website has me completely locked out due to being unable to authorize it with the app. How in the world can I reset it? Is there a way to reset it? Is there a way to remove this authentication from my account (even though I am locked out)? I spoke to the website support and they said I had to contact the app support directly. I am at a complete and utter loss here.

Ask for confirmation before deleting entries

I was deleting my passwords (intentionally) today, and it occurred to me that there should probably be some sort of warning before you can delete a password. Given that if you don't have an encrypted backup then you've probably lost access to that account forever, having a confirmation dialog pop up when trying to delete a password will reduce the risk of someone accidentally deleting it or deleting it without realizing the potential consequences.

Notification Center Widget

I know this isn't the most secure thing to have, but I would love to see a notification center widget with your tokens. You can disable the Notification Center in the lock screen so that might help, but I would love to see that. Would make signing in a million times easier.

iPhone 6

The interface needs to be updated a little to support the new high-resolution screens on the iPhone 6 and 6 plus.

Progress ring does not update when scrolling

Steps to reproduce:

First make sure you have at least one token and the ring is displaying.

  1. Drag to scroll view while watching the progress ring
  2. Note the ring doesn't update
  3. Lift finger to release scrolling
  4. See ring jump to correct position

What I expect:

The ring should continue to animate while the tokens are being scrolled.

Crash when reordering items

Steps to reproduce:

  1. Add enough tokens to require scrolling.
  2. Scroll to the bottom of the table
  3. Tap "Edit"
  4. Drag the last token upwards so it is no longer the last item
  5. Crash
2016-10-10 09:40:52.195995 Authenticator[3852:1015298] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempt to create two animations for cell'

This happens on master.

Improve Accessibility

Following the accessibility audit and the improvements in PR #207, there are additional changes that can be made to improve the experience of using the app with VoiceOver.

exception on build test on ios 8.4.1

I try to build and test this app using ios 8.4.1 (OSX capital, Xcode 8.1), and I get this error when the app run on device:

/Users/secmask/projects/xcode-projects/Authenticator/Authenticator/Source/TokenListViewController.swift: 28: 7: fatal error: use of unimplemented initializer 'init(nibName:bundle:)' for class 'Authenticator.TokenListViewController'

warning: could not load any Objective-C class information from the dyld shared cache. This will significantly reduce the quality of type information available.

Just wonder how to fix it. thanks.

Device and computer sync

Any chance of adding syncing between Devices like Authy does? Or writing a Mac/PC app and syncing with it?

I understand that this hurts security, but it makes 2FA livable on my ~30 accounts.

Colorize or website logo

There should be an option to edit the color of the account or at least the logo of the website appears next to the name. That would be much easier and readable.

I didn't save the token. Big oops or fixable?

Hi Matt,
I didn't save the token when I used the 6-digit code I was given. And, I didn't write down the code either. Is there a way to find it or a floating token (she says with wry smile) somewhere in the recesses of my phone? I can't access my account without a numeric code. Any guidance you can give this beginner (seriously, my first attempt at this crazy business of authenticating) would be most appreciated. Many thanks.

Optional Passcode / Touch ID / Face ID

Several users have requested an optional lock screen requiring a PIN code to access the app. The simplest form would be entirely in the UI. A more complex version of this feature might use the PIN to encrypt the token data stored in the keychain.

xcode 8 development

Xcode 8 suggest to convert code to swift-3, but after convert, there's a lot of error, did you plan to support this?

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.