[{"data":1,"prerenderedAt":669},["ShallowReactive",2],{"project-29923736":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":47,"post_text":49,"what":50,"said":88,"maker_in_thread":230,"shape":240,"grid":243,"attempts":630,"same_week":631,"maker_shows":453,"maker_hidden":661,"reader_version":662,"card":663},"29923736","Login with HN","Login with HN (Unofficially)","title","Show HN: Login with HN (Unofficially)","https:\u002F\u002Floginwithhn.com","loginwithhn.com","hardwaresofton",1642095107,2022,436,149,75,2570,3,"legend","security_privacy","authentication","web_app",[24,25,26,27],"hacker news login","oauth provider","social login","hn authentication","curious",0.108,{"positive":31,"neutral":32,"mixed":33,"critical":34},15,33,1,12,61,{"design":37,"idea":38,"performance":40,"privacy":42,"execution":43,"docs":46},{"positive":18,"critical":33},{"positive":39,"critical":33},8,{"positive":33,"critical":41},4,{"positive":33,"critical":41},{"positive":44,"critical":45},0,2,{"positive":33,"critical":44},[41,44,44,44,18,18,44,44,44,48,18,44,18,18,18,48,45,48,18,45,48,33,18,44,18,44,33,33,48,18,41,41,18,18,48,48,48,33,33,45],5,null,{"problem":51,"audience":62,"pricing":49,"motivation":69,"time_to_build":49,"stack":73,"openness":86,"stage":87,"team_size":86},{"value":52,"source":53,"evidence":54},"Lets apps offer social login with Hacker News accounts without asking for HN passwords","maker",[55,58],{"id":56,"by":11,"text":57},"29923816","Hey HN, I wanted to be able to make apps that do social login with HN so I hacked it together. It works like you would expect -- generating a code you can put in your profile.…",{"id":59,"by":60,"text":61},"29924471","colinclerk","Wow, awesome! We've had a few startups ask for an HN integration at https:\u002F\u002Fclerk.dev and we'll build this in ASAP. It would be great if this could somehow verify whether an HN…",{"value":63,"source":53,"evidence":64},"Developers who want to add HN login to their apps",[65,66],{"id":56,"by":11,"text":57},{"id":67,"by":11,"text":68},"29926266","Yup! LoginWithHN is the OAuth provider :) so the idea is if you have an app that you want people to use to login with HN, via LoginWithHN then you can use loginwithhn.com to make…",{"value":70,"source":53,"evidence":71},"Wanted to make apps that do social login with HN",[72],{"id":56,"by":11,"text":57},[74,80],{"value":75,"source":53,"evidence":76},"NestJS",[77],{"id":78,"by":11,"text":79},"29930090","OK one more time! It's working for me right now -- I see the odd out of time error in the logs but the errors are mostly gone now: ``` [Nest] 41 - 01\u002F14\u002F2022, 2:46:01 AM DEBUG…",{"value":81,"source":53,"evidence":82},"ORY Hydra",[83],{"id":84,"by":11,"text":85},"29924924","Hey I appreciate it! It's a tiny little hack but I'm glad people seem to like it! ORY Hydra was fantastic every step of the way, I originally started with a completely different…","unknown","beta",{"praise":89,"objections":118,"requests":164,"questions":190,"alternatives":209},[90,103],{"value":91,"source":92,"evidence":93},"Smart, low-impact token-in-profile approach that avoids passwords","commenter",[94,98,99],{"id":95,"by":96,"text":97},"29924205","simonw","This is a smart implementation. I was worried it would be doing something uncouth like asking for your HN password or scraping some kind of unofficial API, but instead it gives…",{"id":59,"by":60,"text":61},{"id":100,"by":101,"text":102},"29926291","clay-dreidels","This is a smart, safe implementation. On a side note: I wish HN offered 2FA.",{"value":104,"source":92,"evidence":105},"Useful idea with precedent in Keybase and other sites",[106,110,114],{"id":107,"by":108,"text":109},"29924755","freedomben","Agreed, and it doesn't really matter but for some reason I felt compelled to mention, this same mechanism (putting token in profile page) has been in widespread usage for years…",{"id":111,"by":112,"text":113},"29925409","hnarn","This is kind of reminiscent of how keybase verifies your ownership of social media accounts, domain names etc.",{"id":115,"by":116,"text":117},"29929060","voussoir","Hi, I just wanted to say I have fond memories of using garrysmod.org to download add-ons for gmod back in 2008-2010 or so. They used the same authentication technique by giving…",[119,133,143,154],{"value":120,"source":92,"evidence":121},"Load and HTTP 500 errors made login unreliable at launch",[122,126,130],{"id":123,"by":124,"text":125},"29923927","Minor49er","It didn't appear to be working after a couple of attempts. Opening the console shows a lot of HTTP 500 responses coming from \u002Fapi\u002Fv1\u002Fhn\u002Fpoll\u002Fstatus",{"id":127,"by":128,"text":129},"29924127","laputan_machine","Great idea, I like the concept of using a code in your bio as the auth mechanism. As another poster replied, the api seems to be 500'ing",{"id":131,"by":124,"text":132},"29926571","The API is responding that the request completed successfully, but it doesn't appear to authenticate. I even tried replacing my entire About section so that it was only the code…",{"value":134,"source":92,"evidence":135},"Login code is not explicit enough and could enable phishing",[136,140],{"id":137,"by":138,"text":139},"29924770","gruez",">How does it work? >[...] >LoginWithHN generates a unique one-time-use code that the user must then put into their profile within 5 minutes I like the implementation, but…",{"id":141,"by":11,"text":142},"29926302","You're right -- I will make this more explicit to hopefully prevent some phishing attempts",{"value":144,"source":92,"evidence":145},"Themed like HN, which feels close to phishing",[146,150],{"id":147,"by":148,"text":149},"29929751","schwede","I think it’s in poor taste to theme your site to look like HN. Feels a little close to phishing.",{"id":151,"by":152,"text":153},"29924654","tomhallett","Question - are you affiliated with HN\u002FYC at all? If not, I would be concerned about the colors\u002Fbranding on the homepage being the same as HN\u002FYC. I see the word “unofficially”,…",{"value":155,"source":92,"evidence":156},"Lacks audience binding in OAuth, so tokens could be replayed",[157,161],{"id":158,"by":159,"text":160},"29924392","zemnmez","it seems like if this is OAuth2, the protocol is not giving an audience specifier? That would mean that any token is as good as any other, and say, authenticating to…",{"id":162,"by":11,"text":163},"29925271","Ah yes, this is something I'm going to tighten up once we have OAuth2 clients signed up -- right now the only client is the actual loginwithhn site itself!",[165,169,179,183],{"value":166,"source":92,"evidence":167},"Add a confirm button instead of polling profile",[168],{"id":95,"by":96,"text":97},{"value":170,"source":92,"evidence":171},"Minimum karma or account age requirement",[172,176],{"id":173,"by":174,"text":175},"29925936","version_five","Congrats on putting this together, it looks really cool. One suggested feature that crossed my mind is to allow a minimum karma or account tenure requirement, in order to screen…",{"id":177,"by":11,"text":178},"29926345","That's a fantastic idea, thank you, I'll implement that.",{"value":180,"source":92,"evidence":181},"Verify YC cohort membership",[182],{"id":59,"by":60,"text":61},{"value":184,"source":92,"evidence":185},"Native 2FA on Hacker News",[186,189],{"id":187,"by":101,"text":188},"29926298","This is very clever. On a side note, I wish HN offered two-factor authentication.",{"id":100,"by":101,"text":102},[191,198],{"value":192,"source":92,"evidence":193},"How is the code protected from third parties scanning profiles",[194],{"id":195,"by":196,"text":197},"29925274","paxys","This is neat. How do you protect against a third party scanning HN profiles for codes and stealing them?",{"value":199,"source":92,"evidence":200},"How to avoid caching of the profile page",[201,205],{"id":202,"by":203,"text":204},"29924300","todd3834","Very cool, I was experimenting with a similar implementation of this a few years back. We were using a browser extension to handle the posting to the profile for you. However, we…",{"id":206,"by":207,"text":208},"29924117","dougk16","I'm doing something very similar with my service: https:\u002F\u002Faytwit.com\u002Fthoughter To the author, there is a simple trick you can pull in order to make the confirmation instantaneous…",[210,215,226],{"value":211,"source":92,"evidence":212},"Keybase identity verification",[213,214],{"id":137,"by":138,"text":139},{"id":111,"by":112,"text":113},{"value":216,"source":92,"evidence":217},"Public key in bio with message signing",[218,222],{"id":219,"by":220,"text":221},"29923974","udbhavs","Great idea. If you need to add a code to your bio, another idea is putting a public key in your HN bio and signing a nonce message using some browser extension like Metamask.",{"id":223,"by":224,"text":225},"29931576","ulucs","Implementation idea: this method reminds me that we can post our public keys in bio, which means logging in could just mean signing a message that says \"sign me in to %service%\"…",{"value":227,"source":92,"evidence":228},"Garrysmod.org Steam profile token",[229],{"id":115,"by":116,"text":117},{"comments":231,"answered":34,"key":232},34,[233,236,239],{"id":234,"text":235},"29925363","Hey if you don't mind I'd love to have you kick the tires -- there aren't any client apps (other than the website itself) right now, but I'll be opening that up soon, got some…",{"id":237,"text":238},"29925858","rsync.net is a massively awesome product, I think I can safely say the rest of the internet is hoping you don't get any time away :).",{"id":56,"text":57},{"commenters":241,"max_depth":39,"maker_replies":231,"first_comment_mins":48,"lifespan_hours":242},83,268,[244,246,250,253,257,261,264,266,269,272,274,276,279,282,285,288,291,293,294,297,300,303,306,308,311,313,315,318,320,323,325,328,330,332,335,339,341,343,344,347,350,351,354,357,360,363,365,367,370,371,375,378,380,383,387,389,392,396,398,401,404,406,408,411,414,416,417,419,422,424,425,428,431,435,439,441,445,446,448,451,455,456,458,460,462,464,467,469,474,477,481,484,486,488,491,494,496,499,501,503,506,508,509,511,513,515,517,519,521,523,525,526,528,530,534,536,540,544,548,552,554,556,558,561,565,567,569,571,573,575,578,580,582,584,588,590,594,598,600,603,605,607,608,611,614,616,621,623,625],[95,44,48,245,96,44],"project\u002Fpositive\u002Fdesign",[247,44,18,248,249,44],"29924585","project\u002Fneutral\u002Fidea","tlarkworthy",[251,44,18,248,252,44],"29924599","johnkpaul",[254,44,44,255,256,44],"29924933","other\u002Fneutral\u002Fnone","nvr219",[258,44,44,259,260,44],"29925607","commenter\u002Fneutral\u002Fnone","dmix",[262,44,44,259,263,44],"29925895","gresrun",[265,44,44,259,256,44],"29926816",[267,44,44,255,268,44],"29927423","Lorin",[270,44,44,255,271,44],"29927704","tomphoolery",[273,44,44,255,268,44],"29963580",[275,44,44,255,252,44],"29934604",[277,44,44,255,278,44],"29924982","tata71",[280,44,44,259,281,44],"29925296","floatingatoll",[283,44,44,259,284,44],"29927567","meowkit",[286,44,44,255,287,44],"29929481","eloisius",[289,44,44,255,290,44],"29935037","timvdalen",[292,44,44,255,287,44],"29943227",[107,44,18,248,108,44],[295,44,18,248,296,44],"29924896","tiffanyh",[298,44,18,248,299,44],"29925225","curiousgal",[301,44,44,255,302,44],"29924902","dheera",[304,44,44,255,305,44],"29925287","KoftaBob",[307,44,44,259,281,44],"29925322",[309,44,44,259,310,44],"29926459","Operyl",[312,44,44,259,281,44],"29928304",[314,44,44,255,302,44],"29926009",[316,44,44,255,317,44],"29926308","phoenixy1",[319,44,44,255,302,44],"29927337",[321,44,44,255,322,44],"29930180","Larrikin",[324,44,44,255,302,44],"29938461",[326,44,44,255,327,44],"29926425","zwily",[329,44,44,255,310,44],"29926495",[331,44,44,255,96,44],"29925697",[333,44,44,255,334,44],"29929937","neither_color",[336,44,48,337,338,44],"29925228","project\u002Fpositive\u002Fidea","rsync",[234,44,44,340,11,33],"maker\u002Fneutral\u002Fnone",[342,44,44,255,338,44],"29925544",[237,44,44,255,11,33],[345,44,44,255,346,44],"29927812","irthomasthomas",[348,44,18,248,349,44],"29925524","sattoshi",[187,44,44,255,101,44],[352,44,44,255,353,44],"29926837","iyn",[355,44,44,255,356,44],"29927903","kogir",[358,44,44,255,359,44],"29929356","maxwell_xander",[361,44,44,259,362,44],"29930378","MajesticHobo2",[364,44,44,255,359,44],"29937526",[366,44,44,255,362,44],"29930344",[368,44,18,248,369,44],"29926967","waffle_maniac",[56,33,44,248,11,33],[372,33,18,373,374,44],"29924085","project\u002Fneutral\u002Fnone","will0",[376,33,18,373,377,44],"29924872","shreddit",[67,33,44,379,11,33],"maker\u002Fneutral\u002Fidea",[381,33,44,255,382,44],"29928541","timoteostewart",[384,33,18,385,386,44],"29927630","maker\u002Fneutral\u002Fperformance","dang",[388,33,44,385,11,33],"29929144",[390,33,48,391,386,44],"29929895","maker\u002Fpositive\u002Fperformance",[393,33,18,394,395,44],"29928728","project\u002Fneutral\u002Fperformance","somishere",[397,33,44,385,11,33],"29929918",[399,45,48,337,400,44],"29924448","motohagiography",[402,45,33,403,207,44],"29925213","project\u002Fcritical\u002Fidea",[405,45,18,248,400,44],"29926190",[137,18,18,407,138,44],"project\u002Fneutral\u002Fdesign",[409,18,18,410,60,44],"29925882","project\u002Fneutral\u002Fprivacy",[412,18,44,413,11,33],"29926317","maker\u002Fpositive\u002Fnone",[141,18,44,415,11,33],"maker\u002Fneutral\u002Fdesign",[59,41,48,337,60,44],[418,41,44,340,11,33],"29925235",[420,41,44,255,421,44],"30064481","dasickis",[423,41,44,255,421,44],"30064381",[219,48,18,248,220,44],[426,48,18,407,427,44],"29924244","Anunayj",[429,48,18,248,430,44],"29924418","dividuum",[432,48,44,433,434,44],"29925300","commenter\u002Fneutral\u002Fprivacy","jtsiskin",[436,48,33,437,438,44],"29928378","project\u002Fcritical\u002Fprivacy","rgovostes",[440,48,44,433,430,44],"29928627",[442,443,48,413,444,44],"29924849",6,"Visayer",[84,443,44,413,11,33],[447,443,18,340,444,44],"29925719",[449,443,44,255,450,44],"29929910","bobberkarl",[452,453,33,437,454,44],"29924870",7,"AnotherGoodName",[151,39,18,407,152,44],[457,39,44,415,11,33],"29924797",[459,39,48,245,152,44],"29925174",[461,39,44,413,11,33],"29925499",[158,463,33,437,159,44],9,[465,463,44,259,466,44],"29925059","rank0",[162,463,44,468,11,33],"maker\u002Fneutral\u002Fprivacy",[470,471,44,472,473,44],"29924568",10,"other\u002Fneutral\u002Fprivacy","hirundo",[475,471,44,472,476,44],"29926363","xtracto",[478,479,18,373,480,44],"29923965",11,"kotrunga",[482,479,18,248,483,44],"29924212","spockz",[485,479,44,340,11,33],"29924516",[487,479,44,373,11,33],"29924352",[489,479,44,255,490,44],"29924519","azalemeth",[492,479,44,255,493,44],"29924606","michaelt",[495,479,44,255,490,44],"29927381",[497,479,44,255,498,44],"29924618","djrogers",[123,34,33,500,124,44],"project\u002Fcritical\u002Fperformance",[502,34,44,385,11,33],"29923995",[504,34,33,500,505,44],"29924897","jmkim",[507,34,44,385,11,33],"29925487",[131,34,33,500,124,44],[510,34,44,385,11,33],"29929958",[512,34,44,259,124,44],"29930005",[115,514,48,337,116,44],13,[516,514,44,340,11,33],"29929967",[202,518,18,394,203,44],14,[520,518,44,385,11,33],"29924368",[522,518,44,255,207,44],"29924403",[524,518,44,413,11,33],"29925509",[173,31,18,248,174,44],[177,31,44,527,11,33],"maker\u002Fpositive\u002Fidea",[111,529,18,248,112,44],16,[531,532,48,337,533,44],"29926914",17,"adamrezich",[223,535,18,248,224,44],18,[537,538,48,337,539,44],"29927738",19,"quickthrower2",[541,542,48,337,543,44],"29928567",20,"nailer",[545,546,33,437,547,44],"29924628",21,"outloudvi",[549,550,18,248,551,44],"29927832",22,"lostmsu",[553,550,44,379,11,33],"29929983",[555,550,18,248,551,44],"29930659",[557,550,44,379,11,33],"29933114",[206,559,18,560,207,44],23,"project\u002Fneutral\u002Fexecution",[562,559,18,563,564,44],"29925447","maker\u002Fneutral\u002Fexecution","diogenesjunior",[566,559,18,394,207,44],"29925677",[568,559,44,259,564,44],"29928870",[570,559,44,259,207,44],"29930174",[572,559,44,340,11,33],"29926365",[574,559,44,413,11,33],"29925516",[100,576,48,577,101,44],24,"project\u002Fpositive\u002Fprivacy",[579,576,44,255,11,33],"29930071",[195,581,18,410,196,44],25,[583,581,44,410,11,33],"29925395",[585,586,48,245,587,44],"29928964",26,"zeepzeep",[589,586,44,407,11,33],"29930063",[591,592,48,337,593,44],"29926523",27,"jrs235",[595,596,18,248,597,44],"29924636",28,"ramon",[599,596,44,248,11,33],"29925535",[127,601,18,602,128,44],29,"project\u002Fmixed\u002Fexecution",[604,601,44,563,11,33],"29925588",[606,601,33,500,128,44],"29926909",[78,601,44,394,11,33],[609,601,18,248,610,44],"29928085","krapp",[147,612,33,613,148,44],30,"project\u002Fcritical\u002Fdesign",[615,612,44,415,11,33],"29929946",[617,618,33,619,620,44],"29924299",31,"project\u002Fcritical\u002Fexecution","metabagel",[622,618,33,619,620,44],"29924421",[624,618,44,560,11,33],"29925550",[626,627,48,628,629,44],"29923999",32,"project\u002Fpositive\u002Fdocs","maliker",[],[632,637,642,647,652,657],{"id":633,"name":634,"points":635,"category":636},"29921419","Looptap",1241,"games",{"id":638,"name":639,"points":640,"category":641},"29924666","Animatize",379,"creative",{"id":643,"name":644,"points":645,"category":646},"29938520","RootMy.TV",361,"hardware",{"id":648,"name":649,"points":650,"category":651},"29978659","Matrix-CRDT",320,"languages",{"id":653,"name":654,"points":655,"category":656},"29959129","My 486 Server",255,"infrastructure",{"id":658,"name":659,"points":660,"category":641},"29921137","Brutalita",243,false,"v2",{"id":664,"name":5,"line":6,"ai":661,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":665,"top":18,"kw":666,"maker":11,"domain":10,"tier":19,"attempts":44,"strip":667,"url":9,"mix":668,"praise":91,"objection":120,"sub":21},29923736,0.11,[24,25,26,27],"4000330005303335253251303011534433555112",[31,32,33,34],1794036615682]