I'm attempting to use BitBucket's OAuth for a Rails application, using https://github.com/sishen/omniauth-bitbucket.
I'm able to get an access token, but it is expired as soon as I get it.
curl https://api.bitbucket.org/2.0/repositories/graysonwright/assemble_test/hooks -H "Authorization: Bearer PW92axQeF6AFbbRagm" {"type": "error", "error": {"message": "Access token expired. Use your refresh token to obtain a new access token."}}
Normally, it seems like this shouldn't be a problem, because I should be able to exchange a refresh token for a new access token. But as far as I can tell, it doesn't look like I receive a refresh token anywhere in the OAuth process.
At what point in the OAuth process should I receive the refresh token? What is the refresh token called in the request? Anything else that I haven't checked yet?
Here's a dump of the oauth data that I receive:
--- !ruby/hash:OmniAuth::AuthHash provider: bitbucket uid: graysonwright info: !ruby/hash:OmniAuth::AuthHash::InfoHash name: Grayson Wright avatar: https://bitbucket.org/account/graysonwright/avatar/32/?ts=1499275384 email: REDACTED credentials: !ruby/hash:OmniAuth::AuthHash token: REDACTED secret: REDACTED extra: !ruby/hash:OmniAuth::AuthHash access_token: !ruby/object:OAuth::AccessToken token: REDACTED secret: REDACTED consumer: !ruby/object:OAuth::Consumer key: REDACTED secret: REDACTED options: :signature_method: HMAC-SHA1 :request_token_path: "/api/1.0/oauth/request_token" :authorize_path: "/api/1.0/oauth/authenticate" :access_token_path: "/api/1.0/oauth/access_token" :proxy: :scheme: :header :http_method: :post :debug_output: :oauth_version: '1.0' :site: https://bitbucket.org debug_output: http: !ruby/object:Net::HTTP address: bitbucket.org port: 443 local_host: local_port: curr_http_version: '1.1' keep_alive_timeout: 2 last_communicated: close_on_empty_response: false socket: started: false open_timeout: 30 read_timeout: 30 continue_timeout: debug_output: proxy_from_env: true proxy_uri: false proxy_address: proxy_port: proxy_user: proxy_pass: use_ssl: true ssl_context: !ruby/object:OpenSSL::SSL::SSLContext verify_mode: 1 verify_hostname: true ca_file: "/etc/ssl/certs/ca-certificates.crt" verify_depth: 5 ssl_session: !ruby/object:OpenSSL::SSL::Session {} sspi_enabled: false ca_file: "/etc/ssl/certs/ca-certificates.crt" ca_path: cert: cert_store: ciphers: key: ssl_timeout: ssl_version: verify_callback: verify_depth: 5 verify_mode: 1 http_method: :post uri: !ruby/object:URI::HTTPS scheme: https user: password: host: bitbucket.org port: 443 path: '' query: opaque: fragment: parser: !ruby/object:URI::RFC3986_Parser regexp: :SCHEME: !ruby/regexp /\A[A-Za-z][A-Za-z0-9+\-.]*\z/ :USERINFO: !ruby/regexp /\A(?:%\h\h|[!$&-.0-;=A-Z_a-z~])*\z/ :HOST: !ruby/regexp /\A(?:(?<IP-literal>\[(?:(?<IPv6address>(?:\h{1,4}:){6}(?<ls32>\h{1,4}:\h{1,4}|(?<IPv4address>(?<dec-octet>[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]|\d)\.\g<dec-octet>\.\g<dec-octet>\.\g<dec-octet>))|::(?:\h{1,4}:){5}\g<ls32>|\h{,4}::(?:\h{1,4}:){4}\g<ls32>|(?:(?:\h{1,4}:)?\h{1,4})?::(?:\h{1,4}:){3}\g<ls32>|(?:(?:\h{1,4}:){,2}\h{1,4})?::(?:\h{1,4}:){2}\g<ls32>|(?:(?:\h{1,4}:){,3}\h{1,4})?::\h{1,4}:\g<ls32>|(?:(?:\h{1,4}:){,4}\h{1,4})?::\g<ls32>|(?:(?:\h{1,4}:){,5}\h{1,4})?::\h{1,4}|(?:(?:\h{1,4}:){,6}\h{1,4})?::)|(?<IPvFuture>v\h+\.[!$&-.0-;=A-Z_a-z~]+))\])|\g<IPv4address>|(?<reg-name>(?:%\h\h|[!$&-.0-9;=A-Z_a-z~])*))\z/ :ABS_PATH: !ruby/regexp /\A\/(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*(?:\/(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*)*\z/ :REL_PATH: !ruby/regexp /\A(?:%\h\h|[!$&-.0-;=@-Z_a-z~])+(?:\/(?:%\h\h|[!$&-.0-;=@-Z_a-z~])*)*\z/ :QUERY: !ruby/regexp /\A(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*\z/ :FRAGMENT: !ruby/regexp /\A(?:%\h\h|[!$&-.0-;=@-Z_a-z~\/?])*\z/ :OPAQUE: !ruby/regexp /\A(?:[^\/].*)?\z/ :PORT: !ruby/regexp /\A[\x09\x0a\x0c\x0d ]*\d*[\x09\x0a\x0c\x0d ]*\z/ params: :oauth_token_secret: REDACTED oauth_token_secret: REDACTED :oauth_token: REDACTED oauth_token: REDACTED response: !ruby/object:Net::HTTPOK http_version: '1.1' code: '200' message: OK header: server: - nginx vary: - Authorization content-type: - application/json; charset=utf-8 x-oauth-scopes: - repository, email strict-transport-security: - max-age=31536000; includeSubDomains; preload date: - Wed, 05 Jul 2017 21:52:51 GMT x-served-by: - app-162 x-static-version: - 296a6a41c87d etag: - '"REDACTED"' x-content-type-options: - nosniff x-render-time: - '0.0347518920898' x-credential-type: - oauth1 x-accepted-oauth-scopes: - email connection: - close x-version: - 296a6a41c87d x-request-count: - '165' x-frame-options: - SAMEORIGIN x-cache-info: - not cacheable; request contained Authorization header content-length: - '188' body: '[{"active": true, "is_atlassian_id": true, "email": "REDACTED", "primary": true}, {"active": true, "is_atlassian_id": false, "email": "REDACTED", "primary": false}]' read: true uri: decode_content: true socket: body_exist: true
Thanks for your help!
I'm also facing the same issue.please help
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.