omniauth-slack
omniauth-slack copied to clipboard
Omniauth-oauth2 v.1.8.0 Causes "undefined method `expired?'"
I had the following in my Gemfile... gem 'omniauth-oauth2', '~> 1.7'
After a bundle update omniauth-oauth2 went from v.1.7.3 -> 1.8.0
That caused errors when authenticating with Slack as follows...
D, [2022-09-07T18:08:29.046543 #42987] DEBUG -- omniauth: (slack_chiirp) Callback phase initiated.
OAuth2::Client#get_token argument extract_access_token
will be removed in oauth2 v3. Refactor to use access_token_class
on #initialize.
D, [2022-09-07T18:08:29.047586 #42987] DEBUG -- omniauth: (slack) API request '[:post, "https://slack.com/api/oauth.v2.access"]'.
E, [2022-09-07T18:08:29.200274 #42987] ERROR -- omniauth: (slack_chiirp) Authentication failure! undefined method expired?' for nil:NilClass self.access_token = access_token.refresh! if access_token.expired? ^^^^^^^^^: NoMethodError, undefined method
expired?' for nil:NilClass
self.access_token = access_token.refresh! if access_token.expired?
Let me know if any other info is needed.
@kevinneub did you manage to resolve this?
I reverted back to 1.7. I was not able to determine what was causing it. I understand the oauth2 process but I haven't spent the time to get a good handle on the omniauth gems.
The linked PR fixes this for me, thanks @ozmar-salesloft
Here is a fork with a bunch of the updates for the ruby 3.x and the latest version of the oauth-xx/oauth2:
https://github.com/riter-co/omniauth-slack
@K-S-A big thanks! You saved me!