Weibo OAuth2 Strategy for OmniAuth 1.0.
Read Weibo OAuth2 docs for more details: https://open.weibo.com/wiki/授权机制
- CVE-2019-17268 Issue #36
Add to your Gemfile
:
gem 'omniauth-weibo-oauth2'
Then bundle install
.
Or install it yourself as:
$ gem install omniauth-weibo-oauth2
OmniAuth::Strategies::Weibo
is simply a Rack middleware. Read the OmniAuth 1.0 docs for detailed instructions: https://github.com/intridea/omniauth.
Here's a quick example, adding the middleware to a Rails app in config/initializers/omniauth.rb
:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :weibo, ENV['WEIBO_KEY'], ENV['WEIBO_SECRET']
end
you can set up redirect_uri in omniauth.rb
as following:
provider :weibo, ENV['WEIBO_KEY'], ENV['WEIBO_SECRET'],
token_params: {redirect_uri: "http://127.0.0.1:3000/auth/weibo/callback" }
- image_size: This option defines the size of the user's image in Authentication Hash (info['image']). Valid options include
small
(30x30),middle
(50x50),large
(180x180) andoriginal
(the size of the image originally uploaded). Default ismiddle
.
Rails.application.config.middleware.use OmniAuth::Builder do
provider :weibo, ENV['WEIBO_KEY'], ENV['WEIBO_SECRET'], :image_size => 'original'
end
Here's an example Authentication Hash available in request.env['omniauth.auth']
:
{
:provider => 'weibo',
:uid => '1234567890',
:info => {
:nickname => 'beenhero',
:name => 'beenhero',
:location => '浙江 杭州',
:image => 'http://tp4.sinaimg.cn/1640099215/50/1287016234/1',
:description => '移步twitter@beenhero',
:urls => { :Blog => 'http://beenhero.com'
:Weibo => 'http://weibo.com/beenhero'
},
},
:credentials => {
:token => '2.00JjgzmBd7F...', # OAuth 2.0 access_token, which you may wish to store
:expires_at => 1331780640, # when the access token expires (if it expires)
:expires => true # if you request `offline_access` this will be false
},
:extra => {
:raw_info => {
... # data from /2/users/show.json, check by yourself
}
}
}
PS. Built and tested on MRI Ruby 2.4.2
gem build omniauth-weibo-oauth2.gemspec
gem push omniauth-weibo-oauth2-VERSION.gem
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Added some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Copyright (c) 2012-2017 by Bin He, See LICENSE for details.