当我尝试从我的 api 获取资源时,我得到了无效的授权。
invalid_grant: The provided authorization grant is invalid, expired, revoked, does not match the redirection URI used in the authorization request,or was issued to another client.
可能是什么问题?
require 'sinatra'
require 'httparty'
require 'oauth2'
enable :sessions
configure do
set :callback, 'http://localhost:4567/auth/doorkeeper/callback'
set :app_id, '7cd423ef68bdc938372d8e290475ea5a85feb550004b77481f99ff0dcba133b1'
set :app_secret, '46bafd07b5a485240d7fdaedbdbac2a675afabe470f5433b13395f8dcff4e473'
end
get '/' do
oauth_client.auth_code.authorize_url(redirect_uri: settings.callback)
end
get '/auth/doorkeeper/callback' do
if params[:code].nil?
redirect to('/')
end
session[:code] = params[:code]
redirect to('/get_token')
end
get '/get_token' do
access = oauth_client.auth_code.get_token session[:code], :redirect_uri => settings.callback
# session[:code]
access.get('/api/v1/me')
end
def oauth_client
@oauth_client ||= OAuth2::Client.new(settings.app_id, settings.app_secret, site: "http://localhost:3000")
end