自从我看到 omniauth-dropbox gem ,被制成:
Authenticate to the Dropbox REST API (v1).
我很高兴我不需要开发 OAuth 暗示的所有重定向。 但是我找不到让它们一起工作的方法:(
omniauth-dropbox gem,工作正常,单独使用,我得到了身份验证等等。 但是要从回调中保存什么,所以 dropbox-sdk会明白用户已通过身份验证吗?
如何让 session.get_access_token
由 omniauth-dropbox 自动处理?
代码
def dropbox
session = DropboxSession.new(MULTIAPI_CONFIG['dropbox']['appKey'], MULTIAPI_CONFIG['dropbox']['appSecret'])
session.get_request_token
authorize_url = session.get_authorize_url('myurl/auth/dropbox/callback')
print authorize_url
session.get_access_token
client = DropboxClient.new(session, ACCESS_TYPE)
object = client.metadata('/')
render :json => object
end
错误
Couldn't get access token. Server returned 401: Unauthorized.
最佳答案
它看起来来自 https://github.com/intridea/omniauth/wiki就像您可以在回调处理程序中获取 env['omniauth.auth']
一样,您可以从那里提取凭据(token
和 secret
).参见 https://github.com/intridea/omniauth/wiki/Auth-Hash-Schema .
获得 token 和密码后,您应该可以调用 session.set_access_token
告诉 Dropbox SDK 使用什么凭据。
关于ruby-on-rails - omniauth-dropbox 和 dropbox-sdk,他们能一起工作吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17302455/