Interesting, thanks for the clarification.

On Apr 19, 2012, at 10:25 PM, Jed Schmidt wrote:

> Dick,
> 
> Sajak is not an OAuth library, but instead a way to map HTTP to your
> models in a predictable way. If the user comes in unauthenticated, you
> can use something like authom[1] in your middleware stack to do the
> OAuth dance, and then subsequently use whatever scheme you please to
> authenticate them for your site. All Sajak does is instantiate a user
> based on the `authentication` method of the user model you provide.
> 
> Jed
> 
> [1] https://github.com/jed/authom
> 
> On Fri, Apr 20, 2012 at 11:15 AM, Dick Hardt <[email protected]> wrote:
>> The various OAuth and OAuth end points have different names for the 
>> parameters, and some will accept the token in the header, others in the 
>> query string. Some have a refresh token. Interested in how you are going to 
>> support all the various snowflakes of OAuth / OAuth 2 :)
>> 
>> On Apr 19, 2012, at 9:46 PM, Jed Schmidt wrote:
>> 
>>> Chenye,
>>> 
>>> Sajak is authentication agnostic. The only special case is basic auth,
>>> where it will parse the base64 credentials into a username and
>>> password. All other schemes pass the scheme name and token, so for
>>> oauth, your user authenticate method would look like this:
>>> 
>>> User.prototype.authenticate = function(auth, cb) {
>>>  // for oauth:
>>>  // auth.scheme == "oauth"
>>>  // auth.token == "<user-oauth-token>"
>>> }
>>> 
>>> Jed
>>> 
>>> On Fri, Apr 20, 2012 at 9:44 AM, 梁辰晔 <[email protected]> wrote:
>>>> Hi, only basic user/password authentication now,
>>>> are you plan to support openid, oauth and the others?
>>>> 
>>>> 在 2012年4月19日 下午9:26,Jed Schmidt <[email protected]>写道:
>>>>> 
>>>>> Hey all, good evening from Tokyo.
>>>>> 
>>>>> I've been working on a REST API facelift recently for a client, and
>>>>> extracted out what I learned into a library.
>>>>> 
>>>>> It's called Sajak: Simple Authenticated JSON API Kit.
>>>>> 
>>>>> It's a zero-dependency (but Express/Connect compatible) module in ~270
>>>>> LOC that turns a collection of model constructors into an http
>>>>> listener that handles HATEOAS-friendly resolution, routing,
>>>>> authentication, and authorization for you, like this:
>>>>> 
>>>>> ```
>>>>> var http = require("http")
>>>>>  , sajak = require("sajak")
>>>>>  , server = http.createServer()
>>>>> 
>>>>> function User(){ ... }
>>>>> User.prototype = {
>>>>>  authenticate: function(auth, cb){ ... },
>>>>>  save: function(cb){ ... },
>>>>>  fetch: function(cb){ ... }
>>>>> }
>>>>> 
>>>>> function TodoItem(){ ... }
>>>>> TodoItem.prototype = {
>>>>>  authorize: function(user, action, cb){ ... },
>>>>>  save: function(cb){ ... },
>>>>>  fetch: function(cb){ ... },
>>>>>  destroy: function(cb){ ... }
>>>>> }
>>>>> 
>>>>> server.on("request", sajak([User, TodoItem]).router)
>>>>> server.listen(3000)
>>>>> ```
>>>>> 
>>>>> Sajak wires everything up so that you don't have to pepper your routes
>>>>> with redundant/tedious/error-prone
>>>>> authentication/authorization/resolution logic. It's useful as a
>>>>> JSON-only API framework, or as a drop-in replacement for your
>>>>> Express/Connect API router.
>>>>> 
>>>>> Check it out on Github:
>>>>> 
>>>>> https://github.com/jed/sajak
>>>>> 
>>>>> Any and all feedback appreciated:
>>>>> 
>>>>> http://news.ycombinator.com/item?id=3862841
>>>>> 
>>>>> Jed Schmidt
>>>>> http://jed.is
>>>>> 
>>>>> --
>>>>> Job Board: http://jobs.nodejs.org/
>>>>> Posting guidelines:
>>>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "nodejs" group.
>>>>> To post to this group, send email to [email protected]
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected]
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>>> 
>>>> 
>>>> --
>>>> Job Board: http://jobs.nodejs.org/
>>>> Posting guidelines:
>>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>>> You received this message because you are subscribed to the Google
>>>> Groups "nodejs" group.
>>>> To post to this group, send email to [email protected]
>>>> To unsubscribe from this group, send email to
>>>> [email protected]
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>>> 
>>> --
>>> Job Board: http://jobs.nodejs.org/
>>> Posting guidelines: 
>>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>>> You received this message because you are subscribed to the Google
>>> Groups "nodejs" group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]
>>> For more options, visit this group at
>>> http://groups.google.com/group/nodejs?hl=en?hl=en
>> 
>> --
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines: 
>> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]
>> For more options, visit this group at
>> http://groups.google.com/group/nodejs?hl=en?hl=en
> 
> -- 
> Job Board: http://jobs.nodejs.org/
> Posting guidelines: 
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to