OAuth受保护的API可从本地Javascript应用程序访问

时间:2012-09-01 13:49:10

标签: ruby api backbone.js

如果有人问过这个问题我会道歉,并且之前已经回答过,但我已经在整个网站上搜索了所有内容,尝试了大约24个搜索组合,谷歌等,但仍未找到答案。

我正在构建单个页面(好吧,登录/注册页面将是静态的,否则)javascript应用程序。我决定采用Twitter的方法并为其构建API,并使用javascript应用程序使用它。

我正在使用Rails,并计划使用Versionist的API,Authlogic或自定义身份验证系统以及oauth的Doorkeeper。

那么,我如何在本地使用API​​(通过javascript应用程序),但仍然在OAuth后面保护它?

1 个答案:

答案 0 :(得分:0)

以下是我正在使用的js OAuth2库:https://github.com/andreassolberg/jso

这对我来说非常好。

提供有关您的应用的信息:

jso_configure({
    "your_app": {
        client_id: "client id of the application your registered in your provider",
        redirect_uri: "http://localhost:8080",
        authorization: "https://www.your_app.com/oauth/authorize"
    }
});

然后,当您需要或启动应用时,授权用户:

jso_ensureTokens({
    "your_app": ["public", "write"]
});

就是这样,您现在可以向您的提供商api发送请求:

$.oajax({
    url: "https://api.your_app.com/v1/lala/rsvp",
    jso_provider: "your_app",
    jso_scopes: ["public", "write"],
    jso_allowia: true,
    dataType: 'json',
    success: function(data) {
        console.log("Response (your_app):");
        console.log(data);
    }
});

ps:我不会使用Authlogic,它已经超级老了。