[{"data":1,"prerenderedAt":312},["ShallowReactive",2],{"project-8192801":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":29,"sentiment":30,"stance_mix":31,"scored_comments":35,"aspects":36,"strip":44,"post_text":46,"what":47,"said":84,"maker_in_thread":185,"shape":192,"grid":196,"attempts":274,"same_week":275,"maker_shows":43,"maker_hidden":304,"reader_version":305,"card":306},"8192801","Satellizer","Authentication for AngularJS","title","Show HN: Satellizer – Authentication for AngularJS","http:\u002F\u002Fgithub.com\u002Fsahat\u002Fsatellizer","github.com","sahat",1408372644,2014,221,34,80,2272,4,"notable","languages","angularjs authentication library","library",[24,25,26,27,28],"angularjs","authentication","oauth","social login","token auth","mixed",0.081,{"positive":32,"neutral":33,"mixed":34,"critical":18},6,8,0,18,{"idea":37,"privacy":39,"execution":40,"design":41,"docs":42},{"positive":38,"critical":34},3,{"positive":34,"critical":34},{"positive":34,"critical":18},{"positive":34,"critical":34},{"positive":43,"critical":34},1,[45,34,34,34,34,38,34,34,34,45,38,34,38,43,34,43,43,38,34,34,43,34,38,38,34,38,34,45,45,45,38,34,45],5,null,{"problem":48,"audience":57,"pricing":46,"motivation":46,"time_to_build":46,"stack":63,"openness":83,"stage":83,"team_size":83},{"value":49,"source":50,"evidence":51},"Handling client-side authentication with OAuth and social providers in AngularJS","inferred",[52,54],{"id":53},"post",{"id":55,"by":11,"text":56},"8195899","Satellizer gives you an illusion that you're doing an implicit grant flow by opening a popup and then magically you are signed-in. But authorization process is handled on the…",{"value":58,"source":50,"evidence":59},"AngularJS developers",[60],{"id":61,"by":11,"text":62},"8195810","Satellizer is tightly coupled with Angular so I don't think there is much sense in using it without Angular. You can certaintly take server-side examples and re-implement…",[64,69,73],{"value":65,"source":66,"evidence":67},"AngularJS","maker",[68],{"id":61,"by":11,"text":62},{"value":70,"source":66,"evidence":71},"Node.js",[72],{"id":55,"by":11,"text":56},{"value":74,"source":66,"evidence":75},"Java Spring",[76,80],{"id":77,"by":78,"text":79},"8193867","nobullet","I wonder: why Java and Spring? Do you consider other Java implementations?",{"id":81,"by":11,"text":82},"8195816","I have considered Play Framework and Dropwizard. Play it seems is better suited for Scala language and I don't know much about real-world usage of Dropwizard. Between Struts and…","unknown",{"praise":85,"objections":102,"requests":131,"questions":147,"alternatives":162},[86],{"value":87,"source":88,"evidence":89},"Nice, useful API for front-end authentication","commenter",[90,94,98],{"id":91,"by":92,"text":93},"8192952","filearts","This is a very nice solution and API for the front-end. It took me a couple part-time months to put together a similar (not modularized) solution for a rewrite of Plunker. There…",{"id":95,"by":96,"text":97},"8192963","JonnieCache","I really wish this had been around a month ago. I guess I learned a lot about angular by building it myself.",{"id":99,"by":100,"text":101},"8192998","kclay","Were was this a month ago. Had to do this for Play!, great work.",[103,114,121],{"value":104,"source":88,"evidence":105},"Demo and js file returned 404 at first",[106,110],{"id":107,"by":108,"text":109},"8192931","MrBuddyCasino","Not working for me - got a 404 for http:\u002F\u002Frawgit.com\u002Fsahat\u002Fsatellizer\u002Fmaster\u002Flib\u002Fsatellizer.js",{"id":111,"by":112,"text":113},"8192946","gt565k","I was wondering why the demo site wasn't working.. it 404'd on the js file.",{"value":115,"source":88,"evidence":116},"Twitter login redirect did not work",[117],{"id":118,"by":119,"text":120},"8193190","fudged71","I tried logging in with Twitter and wasn't redirected back to your app, so I wasn't able to log in. (Latest Chrome on OSX)",{"value":122,"source":88,"evidence":123},"Documentation lacks guidance on validation and errors",[124,128],{"id":125,"by":126,"text":127},"8193230","pingburg","This is very helpful. How about handling validation and errors (e.g. unique account)?",{"id":129,"by":92,"text":130},"8193319","It seems like a lot of this heavy lifting is left to api \u002F backend implementors and is not explicitly addressed. I don't think that is a short-coming of the module but perhaps…",[132,143],{"value":133,"source":88,"evidence":134},"Support for Python and non-Angular frameworks such as React",[135,139],{"id":136,"by":137,"text":138},"8195801","eric_bullington","This is a very, very nice project -- almost enough to pull me back from ReactJS back to AngularJS. Almost. One question: they say it can be adapted to any Oauth1 or 2 provider,…",{"id":140,"by":141,"text":142},"8193313","zo1","How easy is this to use without AngularJS? Additionally, if not, does anyone know of any alternative JS (or perhaps Python) libraries for what Satellizer does?",{"value":144,"source":88,"evidence":145},"Guidance on anonymous content and account merging",[146],{"id":91,"by":92,"text":93},[148,155],{"value":149,"source":88,"evidence":150},"Is client-side authentication secure",[151],{"id":152,"by":153,"text":154},"8197129","evilsnake","I may be paranoid, but is there any security concern about doing authentification on the frontend ? Wouldn't the user be able to see exactly what is going on and intercept some…",{"value":156,"source":88,"evidence":157},"Who will do the security review",[158],{"id":159,"by":160,"text":161},"8193411","skybrian","It seems like a nice start. Who will do the security review?",[163,170,177],{"value":164,"source":88,"evidence":165},"ng-token-auth",[166],{"id":167,"by":168,"text":169},"8193082","lynndylanhurley","I built something similar that's gained a bit of traction: https:\u002F\u002Fgithub.com\u002Flynndylanhurley\u002Fng-token-auth ng-token-auth comes with a Rails gem, and it's configurable to work…",{"value":171,"source":88,"evidence":172},"OAuth.io",[173],{"id":174,"by":175,"text":176},"8193378","jgrowl","This looks neat! It looks like there is a good amount of config for handling different providers. Have you check out OAuth.io and its opensource core oauthd?:…",{"value":178,"source":88,"evidence":179},"Torii and SimpleAuth",[180,181],{"id":61,"by":11,"text":62},{"id":182,"by":183,"text":184},"8193329","pyre","There is SimpleAuth[1] on the Ember.js side. [1] https:\u002F\u002Fgithub.com\u002Fsimplabs\u002Fember-simple-auth",{"comments":32,"answered":18,"key":186},[187,188,189],{"id":55,"text":56},{"id":61,"text":62},{"id":190,"text":191},"8195812","I forgot to change the redirect url on dev.twitter.com from http:\u002F\u002F127.0.0.1:3000 to http:\u002F\u002Fsatellizer.herokuapp.com. It should be fixed now.",{"commenters":193,"max_depth":38,"maker_replies":32,"first_comment_mins":194,"lifespan_hours":195},23,13,24,[197,199,203,205,207,209,212,214,217,218,219,221,225,226,231,234,235,236,239,240,242,244,245,248,249,252,254,255,256,261,265,269,271],[91,34,45,198,92,34],"project\u002Fpositive\u002Fidea",[200,34,34,201,202,34],"8193573","commenter\u002Fneutral\u002Fidea","ovidiup",[204,34,34,201,175,34],"8193622",[206,34,34,201,92,34],"8194510",[167,43,34,208,168,34],"other\u002Fneutral\u002Fnone",[136,210,38,211,137,34],2,"project\u002Fneutral\u002Fidea",[55,210,34,213,11,43],"maker\u002Fneutral\u002Fexecution",[215,210,34,216,137,34],"8195922","commenter\u002Fpositive\u002Fnone",[174,38,34,208,175,34],[95,18,45,198,96,34],[152,45,38,220,153,34],"project\u002Fneutral\u002Fprivacy",[222,45,34,223,224,34],"8197648","commenter\u002Fneutral\u002Fprivacy","dmix",[159,32,38,220,160,34],[227,228,43,229,230,34],"8194522",7,"project\u002Fcritical\u002Fexecution","oatmealsnap",[232,228,34,208,233,34],"8195783","jnbiche",[107,33,43,229,108,34],[111,33,43,229,112,34],[140,237,38,238,141,34],9,"project\u002Fneutral\u002Fdesign",[182,237,34,208,183,34],[61,237,34,241,11,43],"maker\u002Fneutral\u002Fdesign",[118,243,43,229,119,34],10,[190,243,34,213,11,43],[125,246,38,247,126,34],11,"project\u002Fneutral\u002Fdocs",[129,246,38,247,92,34],[250,246,34,251,11,43],"8195823","maker\u002Fneutral\u002Fdocs",[77,253,38,241,78,34],12,[81,253,34,241,11,43],[99,194,45,198,100,34],[257,258,45,259,260,34],"8193104",14,"project\u002Fpositive\u002Fnone","datasmash",[262,263,45,259,264,34],"8192869",15,"motyar",[266,267,38,211,268,34],"8193348",16,"bmelton",[270,267,34,241,11,43],"8195829",[272,267,45,273,268,34],"8195848","maker\u002Fpositive\u002Fdocs",[],[276,281,286,291,295,299],{"id":277,"name":278,"points":279,"category":280},"8187791","GIFyoutube",577,"creative",{"id":282,"name":283,"points":284,"category":285},"8178660","Tuff.gb",260,"games",{"id":287,"name":288,"points":289,"category":290},"8178940","Ad Detector",204,"security_privacy",{"id":292,"name":293,"points":294,"category":20},"8192287","Scraperjs",192,{"id":296,"name":297,"points":298,"category":20},"8176672","Way.js",162,{"id":300,"name":301,"points":302,"category":303},"8183014","Practical Guide to Mobile Apps",131,"learning_science",false,"v2",{"id":307,"name":5,"line":6,"ai":304,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":308,"top":18,"kw":309,"maker":11,"domain":10,"tier":19,"attempts":34,"strip":310,"url":9,"mix":311,"praise":87,"objection":104,"sub":21},8192801,0.08,[24,25,26,27,28],"500003000530310113001033030555305",[32,33,34,18],1794036521558]