2

我正在使用 Grape 框架为我的 rails 应用程序创建 API。我正在尝试不同的身份验证可能性。有人可以举一个使用 OAuth 进行身份验证的简单示例吗?

4

2 回答 2

1

你好,你有一个例子吗

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

于 2013-07-10T18:52:19.840 回答
0

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

因此,为使用的 ORM 创建 3 个模型并将默认 OAuth2 令牌端点安装到您的 API:

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

可用路线:

POST /oauth/token
POST /oauth/revoke

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

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

查看 README 以获得更详细的示例(简单且可自定义)。

于 2016-11-07T10:24:05.707 回答