Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You're an idiot if you implement this. On iOS, use the device token and implement truly anonymous login without having to deal with anyone else brokering your users' data; I'm not sure what the Android equivalent is, but it can't be much more difficult.

Remember, Facebook is the same company that cuts deals with shady data brokers like the Datalogix (the company that buys your grocery store discount card data and re-sells it, among other things) to build a comprehensive profile of everything you do. Using them for this pseudo-anonymous "anonymous login" helps them a lot more than it will ever help you, as a standalone developer.

I can't wait for Facebook to trademark the term "Anonymous Login," just to complete the irony. Remember, if it was actually anonymous, you wouldn't need Facebook's help to implement it.



> Remember, if it was actually anonymous, you wouldn't need Facebook's help to implement it.

That sums it up nicely.

And actually, the thing is I could totally see Facebook enabling truly 'anonymous logins' and whatnot, because it can afford to do it at this point. It is too entrenched as the social king, no other competitor comes close to it, and it's not going to fall down anytime soon because it'll be buoyed by networks effects for quite some time... and so it makes sense to ease things up a little to improve their public image. But, the way they got there, to the top, was by using dirty and despicable dark patterns, like 'Privacy Zuckering': http://darkpatterns.org/library/privacy_zuckering/ For this reason alone, I would stay the hell away from anything Facebook.


It truly is an interesting move. Last night my housemate was telling me about MS's moves in the office365 space, I was gobsmacked by what they're up to these days. I actually commented "time to buy some MS shares", pigs were flying. And now this..

It does make sense though. Developers only really want a way to verify the user exists and isn't some spammy bot. Verification like facebook login is the easiest way to go. The problem has always been - far too many people avoid signing up with facebook as it shares "god only knows what" with the site. This works around both issues and really is the only way they can become the single signon entity. Which is what they've been aiming for.

As for "not bothering to implement" (aap), if you already need to handle facebook connect login, its going to be minor to add anon login facebook handles all the identity stuff leaving your app clean of yet another verification loop which annoys the hell out of users.

Sure there is the "apps need that data to make money" situation, but as a matter of fact, the people signing on anonymously were a) going to create a fake facebook or b) signup manually and give you a mailinator address.


> MS's moves in the office365 space, I was gobsmacked by what they're up to these days.

Such as?


In excel they're using some pattern recognition so when you start filling down a column they just fill out the rest instead of waiting for you to use the fill down feature, I thought that was just plain neat.

They're improving collaboration in all products, ie bringing it on par with gdocs.

Something geospatial, dont recall exactly what, maybe it was to do with SharePoint or colo.

The most interesting was they're letting go of forcing ms languages for plugins and allowing you to write and import widgets/plugins as html/js so all those nasty vb scripts of old are going to get some much needed love from all the web devs out there.

I could be wrong on a few of these just what I recall hearing about, happy to be corrected if I misunderstood any of what I was told. Mostly it just sounded like, as a company, they're identifying what their core products are and innovating on them. As in strategically, they're getting their shit together.


The point of this isn't staying anonymous to Facebook. It's anonymity from the app developers using FB-only login.

There's no doubt that Facebook knows who you are even if you use the "Anonymous" login. This just allows a user of RandomApp#100 to login without giving the app everything on their Facebook before they even try it.

Also even with anonymous login, you can later choose to give the app your real info if you trust it more or find it useful.

Do I like Facebook-only login? No. However, this does give the user some more choice as to how much is shared with those apps up front.


Honestly, I don't want to rely on app developers implementing this. I would rather have just the one button, and when I get to the Facebook app, then have a big black "log in anonymously" button.


Probably don't want to do this because it would break a whole bunch of facebook apps, just like disabling permissions after the fact with android apps breaks them too.

They'll probably introduce that reality once 'anonymous' mode has been established and depreciate assumed permissions as time goes on.


I understand that perspective, but at least in my case when I see the Facebook login button, it's already an immediate "Nope" for me. I would never see the black button or know it exists.


"On iOS, use the device token and implement truly anonymous login"

* What about the web?

* What about cross-platform?

* What about when the device token changes? (for example, after restoring the phone from a backup image)

My take: Facebook Login solves a real problem well and this 'Anonymous' option is a good improvement. The name is no worse than other industry uses of terms "Incognito", "Private", and "Cloaked".


I've been wondering about this..

on the web, anonymous login would be just a code snippet. What would prevent anyone from showing regular FB login posing as anonymous? Only thing I can think of regular login should have a follow up dialog with confirmation of what's requested, but maybe that can be auto confirmed too? some users may still agree to follow up screen if they trust the anonymous icon.


From the site, it looks like the FB login page you get after clicking the button is all black, and then you get sent back to the app. The regular one would be in the normal colors. Although I suppose they could popup a fake anon one on their own site, but they wouldn't have the right URL. On Android the app allows login without entering a password as well, so I'd immediately know because login through FB doesn't require my password but the app's fake version would.


the question was about posing non anonymous FB login as anonymous to trick users into giving more info about themselves. neither should require a password if yo're already logged into FB.


On the web? There's this great new innovation called cookies that allow for site-based identity!

As for cross-platform and token changes -- well, you can't deal with those situations when you're implementing something that's actually anonymous. You're going to have to implement some sort of persistent identity. At that point, you might as well offer a multitude of options, of which Facebook would be one.

This login creates an unnecessary point of friction for all anonymous applications. Just use an existing token (cookie, device token, etc), allow your user to immediately begin using your app (that's what they expect anyhow), and "ease your user in" to a point of giving you identifying information if you need it.


How would cookies solve it considering that they are temporary?

Even if the cookie expiration was set for 100 years, it's going to disappear the moment someone switches their browser, gets a new computer, clears their cookies, etc.


Not to mention that this does nothing for having the same login for phone and browser.


you can't deal with those situations when you're implementing something that's actually anonymous

True, but this login isn't "actually anonymous" - but I can't think of a better term so I don't blame Facebook for using the one they did. It's effectively a global ID with no data attached to it.


Pseudonymous is the term you're looking for, I think. An identity that's not tied to your real-world identity.


Let's say I want to create a service like Instapaper. I don't care about the person's facebook info, but I'd like to optionally give them a way to login with a simple button press without having to create another username and password.

This seems like a reasonable solution.

> Just use an existing token (cookie, device token)

That won't work because the mobile and web account have to be connected.


Most of what you wrote... most people don't care about. Honestly, I don't care too much about it, and I'm fairly privacy-conscious (I just have a higher threshold for things that I actually care about keeping secret).

Remember, if it was actually anonymous, you wouldn't need Facebook's help to implement it.

People implement FB login for a variety of reasons, but one is that doing proper account management is hard. If you want to implement a non-FB anon login, you basically have to implement a full account management solution yourself, assuming you want the anon account data to be persistent (that is, it's not truly anonymous in the sense that you sign in, do things, sign out, and it's as if you were never there). This basically fixes one of my final issues with FB login, that it's still not clear what data FB will give to the app. If anon login means FB doesn't give anything to the app aside from an opaque ID token, that's pretty cool.


> If you want to implement a non-FB anon login, you basically have to implement a full account management solution yourself, assuming you want the anon account data to be persistent (that is, it's not truly anonymous in the sense that you sign in, do things, sign out, and it's as if you were never there)

That's just not true. Modern web frameworks come with modules that let one have fairly good account management systems without much work.


What you say is not always true either.

I do Python mostly. Django? Fine. It has an excellent auth system out of the box. But that kind of auth system isn't very flexible either. Now I barely do Django development today so please excuse me behind any insane changes.

Flask and Pyramid world? Custom auth to me. They both have community modules for auth stuff, but do I really like them? I am not the kind of guy just pip install random "useful" package these days. Let's give another example. A year or two ago I tried to do social auth in some of my django and flask apps. Maybe I was dumb but using that social-auth library took me a while to get some of login working. Plus, the code was messy and buggy. In the end, I said screw that and implemented all of the custom login myself, just reading the official doc from twitter and facebook. That also took me a while but I knew the whole implementation inside-out. If I don't trust my own implement because it is insecure, then I must spend the same amount of time inspecting other people's custom modules.

The truth is, generic auth system is hard and is not flexible. In fact, too flexible can be a bad thing: http://plope.com/pyramid_auth_design_api_postmortem

I like customized auth system based on the api provided by the framework - that' what makes Pyramid powerful to me. Sometimes your community auth module can have limitation that you probably have to hack around.


What kind of customization were you trying to do in Django that you couldn't? I know you can one-to-one models that extend the backend, you can customize the backend, chose custom templates for the login forms, create your own forms, etc. And the docs seem to indicate this was possible since 1.5: https://docs.djangoproject.com/en/1.5/topics/auth/customizin...


Django did update their auth app, it's very flexible now


Until you want Ajax login. Then you write boilerplate for two hours. If there was a really good ajax reg/login module for Django, I'd gladly pay $10 for it the way I do bootstrap themes.


Hmm. Hadn't thought about that. Good point.


off topic: What is a good way for someone who is unfamiliar with account management to evaluate modules and select one?

I'd like to setup an account management system and I was planning on doing it manually but figured there had to be a better way.


Google around and pick the most popular one usually works, as least if you're using a more "trendy" framework.

For Rails, Devise seems to be the way to go, as it's the most popular by far[0]. It's what I'm using for my project.

[0]https://www.ruby-toolbox.com/categories/rails_authentication


This is simply untrue.

Most modern web frameworks do NOT come with fairly good account management systems.


I’m sure what you are saying is right — but I’m not in anyway smarter reading it then reading the one before. You can’t just say ‘No, not true’ on Hacker News. What makes the existing options not “fairly good”?


well, the burden of proof is on selmnoo, as he made the claim that they are good enough. the default state should always be negative.


To make it easier for him (and others who agree with him), here's a simple question. Name the modules (packages, whatever) that implement password-reset functionality in:

    1. Python + Django 
    2. Node.js + whatever
    3. PHP + CakePHP/CodeIgniter/Yii
I'm not aware of any.

By "password-reset" I mean user clicks "Forgot password" and goes through some process like asking a secret question, doing catpcha test, sending a password reset link via e-mail, handling the click on the link, asking for a new password and resetting it.

P.S. Pick different frameworks if you wish.


In Django? django.contrib.auth.views.password_reset seems like it would do the job, no? If you have specific logic you need to implement, rather than using the framework's default logic, there's likely not much it can do for you.

Alternatively, there appears to be a CBV version of password resets over here that looks fairly easy to extend: https://github.com/brutasse/django-password-reset

I can't talk for node.js (although I have found that its authn/authz frameworks are lacking in general) or various PHP frameworks, but Django at the least is fairly professional.


The device token solution doesn't allow logging into the same account from multiple devices. It is not equivalent.


Very, very few apps are used in a multi-device context. If/when you hit that scenario, you're already dealing with significantly more complex situations that would require you to implement some sort of identifying mechanism, which would render the notion of anonymous login useless anyhow.

Most people are going to access your app from one device, their phone. The phone is the one true source of identity. Let us all be glad that a privacy-paranoid company such as Apple sets the standards there, rather than what Facebook would have liked, had their phone efforts worked out.

I will also note that taking advantage of device token for "login-less anonymous use" is way way smarter for developers, from a usage perspective. Every single tap or interaction is a point of friction for your users; just eliminate them altogether. This is, for example, why TouchID-based devices generate more App Store transactions than devices based on the normal password system.


I'm trying to think of a single service that I log into that I don't access from multiple devices. There is one internal work application I have only used from my work computer, but even that should really be accessible from other devices.

Everything else I use from multiple devices.


I'm truly sick of hearing that the phone is the only device that matters. I use my phone very, very sparingly, and only when I'm away from my laptop. A phone isn't the nicest device for consuming the web, and I doubt it's even the most popular.


Your exasperation is understandable, but the popularity of phones is often backed up by trafic numbers.

‘Often’: many websites don’t see this; I’m willing to bet those I use regularly (StackOverflow, HN) aren’t even close. Most analyst describe a currently slight majority for phone metrics (except time on the site); more importantly, demographic elements suggest phone attention share will grow.

> I'm truly sick of hearing that the phone is the only device that matters.

‘Only’: OC hasn’t said exactly that -- he talked about authentification; most people don’t really say that either. Many journalists exagerate a trend and slight majority, but I would (tongue-in-cheek) blame you first for reading badly written magazines.

My experience is that authentification is safer for non-developer users on their smartphone: you have a lot more stream for consistent two-factor authentification; physical security is better for something in your pocket most of the time; it’s the only random-key generator (capable) most people have close to them. Roughly half of users users actually lock the damn thing…


Everyone (who doesn’t have ulterior motives) can agree that any kind of sign up process for something that will likely always stay on one device should at least be optional. That much should be blindingly obvious. But nice that we talked about it.

Using Facebook (or any kind of login) to solve that would be a bad idea (but many might be tempted to do it).

However, in those cases when the task is more complex than that (I just checked, that applies to eleven† of all 23 third party apps I have installed on my iPhone) that’s not a solution. I – the user – want to be able to access the data from anywhere and do actually use that functionality regularly.

Honestly, I personally would have no issue if each of those apps gave me a choice of signing up with either Google or Facebook. That would massively simplify things for me and I wouldn’t have to lug so many accounts around. I can understand the privacy concerns, so I do see the need for alternatives, but for me personally it’s not an issue.

† Reeder, Twitter, FB Messenger, iBooks, Pages, Keynote, Numbers, YouTube, Twitch, Vine and Dropbox; Apps that already don’t force me to log in, most because it’s just not necessary: Castro, arte, Star Guide, six game apps; Apps that force me to log in for some functionality and I’m not sure how I feel about them: iPhoto, iMovie, Remote.


In what way does multi-device login render anonymous login useless? The only difference for the application developer is that Facebook doesn't give them some additional information to store with the account up front.


Nope, all large commercial systems being designed now are expected to take account of omnichannel


If the user uses Facebook login they're already showing they trust Facebook. This just means they don't have to also trust every app developer. Also Facebook obviously can't see what your service stores against that anonymous (to you) user, so there's no real data leakage here. Your solution only works if you don't need a login at all - if you do is anybody else offering anything like this? As a user it sounds great.


Downvoted, because you could have written the exact same post without the line "You're an idiot if..." - being derogatory and putting down people who disagree with you isn't really appropriate.


If you use the device token as the authentication and identification, any other app on the device immediately gains the ability to log into your service as that user. May as well use a single password across all services which do this.


On iOS, this is only true for applications that share the same keychain, which would imply they come from the same developer. This is actually a really great under-utilized feature that could be used to create a suite of apps with different behaviors that reference the same anonymous identity.


Agreed - shared keychain + unique token would work. Was concerned original post was talking about the advertiser ID as authentication.


> On iOS, use the device token and implement truly anonymous login

Lose your device, lose your account. Yay!


There's got to be some trade off for "anonymous" login.


Well, there is an inbetween - pseudonymous pretty much allows you to have your cake and eat it too. It's a little bit ingenuous that people are pretending the only options are to use your real identity (aka real Facebook account) or be completely anonymous.


Remember, if it was actually anonymous, you wouldn't need Facebook's help to implement it.

- Exactly and I don't even bother signing with Facebook account anymore with most of the apps, Facebook apps are way of the past.


Device tokens are not guaranteed to be stable, btw - they can and do change. Completely inadequate for log-in purposes.


And does my laptop have a device token that can be used?


MAC addresses are arguably more stable and about as easily user-modified (e.g. device tokens are wildly insecure in the presence of jailbroken devices). So: yes. And for the exact same reasons, you should never use it.

I could claim client-side certificates, but nobody uses those, and certainly not cross-platform.


This is a huge win for all of the people who use facebook login that care about remaining anonymous on the internet.


You are never truly anonymous until you boot Tails and use Tor over a public wifi connection.

This is a big win for users who don't want to share their personal data with a random app developer. Facebook still sees your activity, but they already saw your activity.


Obviously this doesn't keep people 100% anonymous.

This for the millions of users that want to try apps without having to fill in multiple onerous registration fields and without having to worry that if they use facebook login, the app will spam all their friends and post to their newsfeed.

This is actually very smart, and I will be implementing it soon. Definitely not an "idiot" move for developers to implement.


Facebook does not sell your data. Can you please share some proof of that? Their partnership with Datalogix helps measure their ads.

Src: http://www.insidefacebook.com/2012/09/24/facebook-partnershi...


I also don't think it needs to be said, but I'm going to say it anyway: this type of "anonymity" from Facebook is nothing like the true anonymity you get from something like Tor. So don't buy your drugs with an "anonymous" Facebook login.


It's a pretty significant move and a big shift towards Agent Zuckerberg's ultimate goal of replacing the internet and freedom of information and privacy.

Can someone give me some perspective on why Mozilla's Persona is not used more for authentication purposes?


It ain't backed by any popular service, so very few people use it, so very few dev implement it, so very few people use it ....


There's recently been a post by Mozilla themselves explaining why Persona failed.


If you are completing a "Login" on Facebook, the word "Anonymous" will never, ever apply to the Login action. Ever.


Device tokens can change.


Facebook's competitors need to pay you more to refine your text.


You're and idiot if you can't see that this gives you a lot more than the device token gives you.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: