首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grape API和OAuth

Grape API和OAuth
EN

Stack Overflow用户
提问于 2013-05-12 17:11:28
回答 2查看 1.7K关注 0票数 2

我正在为我的rails应用程序创建API。我正在尝试不同的身份验证可能性。谁能给出一个使用OAuth进行身份验证的简单示例?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-11 02:52:20

嗨,这里,你有一个例子吗?

https://github.com/opperator/warden-oauth2

票数 1
EN

Stack Overflow用户

发布于 2016-11-07 18:24:06

你可以在GrapeOAuth2 gem中找到更多实际的例子。您需要做的就是创建3个模型来代表您的客户端、令牌和资源所有者,挂载默认端点并保护您的API。

因此,为使用的ORM创建3个模型,并将默认的OAuth2令牌端点挂载到您的应用编程接口:

代码语言:javascript
复制
module Twitter
  class API < Grape::API
    version 'v1', using: :path
    format :json
    prefix :api

    helpers GrapeOAuth2::Helpers::AccessTokenHelpers

    # What to do if somebody will request an API with access_token
    # Authenticate token and raise an error in case of authentication error
    use Rack::OAuth2::Server::Resource::Bearer, 'OAuth API' do |request|
      AccessToken.authenticate(request.access_token) || request.invalid_token!
    end

    # Mount default Grape OAuth2 Token endpoint
    mount GrapeOAuth2::Endpoints::Token

    # ...
  end
end

可用路由:

代码语言:javascript
复制
POST /oauth/token
POST /oauth/revoke

然后使用access_token_required!方法保护所需的端点:

代码语言:javascript
复制
module Twitter
  module Resources
    class Status < Grape::API
      before do
        access_token_required!
      end

      resources :status do
        get do
          { current_user: current_resource_owner.username }
        end
      end
    end
  end
end

看看自述文件中更详细的例子(简单的和可定制的)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16505830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档