OAuth2 Basic Support

official

(Jay Pfaffman) #156

Sounds challenging. Have you added the cert and environment variable inside the container?


(Tegebe) #157

Yes, and tested it using https://github.com/mislav/ssl-tools

root@discourse:/ssl-tools# ruby doctor.rb login.xyz.de:443
/usr/local/bin/ruby (2.5.1-p57)
OpenSSL 1.0.2g  1 Mar 2016: /usr/lib/ssl
SSL_CERT_DIR=""
SSL_CERT_FILE="/shared/cacert.pem"

HEAD https://login.xyz.de:443
OK

(Jay Pfaffman) #158

I’d include the directory rather than hope you put the cert where discourse is looking. I believe that the cert will need to be readable by her discourse.


(Tegebe) #159

Bitnami recently released new Docker images using Discourse 2.1.x. (former was 1.9.4). Oauth2 stopped working there as well, coming up with same error. For now I will try SAML instead of OAuth2.


#160

Did you try offloading the SSL to a frontend Nginx? In this case the certificate should live outside docker with the Nginx.

As your official certificate is a wildcard you can easily use it locally by adding your fake domain that matches the certificate’s to point to localhost (or whatever private IP you’re using) in /etc/hosts which will bypass the DNS lookup, effectively getting rid of the self-signed certificate issue.


(Tegebe) #161

That’s a good idea.
That means the “oauth2 authorize url” will still be the same as this one is only used in the browser. The “oauth2 token url” and “oauth2 user json url” will be unsecure (http) between Discourse and Nginx (outgoing traffic) and from Nginx to the OAuth2 provider it will be secure (https).


(Alex Markessinis) #162

Would it be possible to add some settings to customize the button? Things like:

  • Change the button color
  • Select an icon (Font Awesome?) or upload a small png to sit in front of the text to match other OAuth buttons

(Tegebe) #163

I stopped trying to get this up and running and was going for SAML which works fine for me. If someone has the same problem and is able to figure out a working solution it would be nice to get this documented here.


(Dylan Burkhardt) #164

How hard would it be to modify this plugin to get it to retrieve some information about the user and automatically add them a certain group? Any idea where to start?


(Stanton) #165

Trying this now but my oauth2 provider requires header values for the token and x-api key. Is there a way to send these header values?


(Nick Shearer) #166

has something changed recently? i’m getting js errors when i’m returned from the oauth provider and not being redirected back to the page I was on before logging in.

instead I get this page:

clicking the “click here to continue” link will take me back to the homepage instead of where I was…

note: this doesn’t happen all the time. possibly only when a user has clicked “join the conversation” or whatever from a post embedded on our blog site. then clicked the “reply” button triggering the login.


#168

This is very weird.

Thanks for narrowing the search down!

Yes, it only happens when directly visiting a topic by URL (or after a hard refresh if visited from topic list) on the site. I have not been able to repro this locally (discourse-oauth2-basic with Google OAuth) though.


Technical details:

  • The process is a “full screen login” without any popups
  • Yet, there is a window.opener and window.opener === window
    • Discourse does not exist on the omniauth callback path as the Ember app is not loaded there
    • Thus, the undefined error

The codepath in question was recently extracted to an external file, but not modified.

This PR will work around the problem, but I am still not sure why this only happens when visiting a topic directly.


(Nick Shearer) #169

The weirdest bit is that is only happens when you come from an embeded link i.e at the bottom of this blog post here:

blog: What are the GDPR rules and how do these apply to the DBA?

which goes to:

forum topic: What are the GDPR rules and how do these apply to the DBA? - Blog Posts - Toad World® Forums

it only occurs if you click the “start discussion” link on the blog embed then try to log in/reply.

if you open the topic directly the login/reply buttons correctly return you to where you should be.


#170

From my testing, it happens as long as you “open the topic from outside of your forum”. I can repro the issue by clicking on the topic link in your post.


(jk2K) #172

avatar not work, cannot get avatar from gitlab,


(Penar Musaraj) #173

Can you turn on debugging and paste the contents of the JSON returned by your oauth2 provider? (You can find this in /logs.)


(jk2K) #174

OAuth2 Debugging: after_authenticate response: creds:

creds: {"token"=>"4b3d0ea1e73a9995ad796748acdba33a338d802c0a00c396399cae0dd9dd04fa", "expires"=>false}
info: {"id"=>nil, "name"=>nil}
extra: {}

OAuth2 Debugging: user_json_url: GET http://gitlab.com/api/v4/user

Recent
Message (9 copies reported)
OAuth2 Debugging: user_json: {"id"=>7968, "name"=>"小明", "username"=>"demo1", "state"=>"active", "avatar_url"=>"http://gitlab.com/uploads/-/system/user/avatar/7968/avatar.png", "web_url"=>"http://gitlab.com/demo", "created_at"=>"2017-11-22T09:54:44.000+08:00", "bio"=>"", "location"=>"", "skype"=>"", "linkedin"=>"", "twitter"=>"", "website_url"=>"", "organization"=>"", "last_sign_in_at"=>"2018-11-12T17:47:45.000+08:00", "confirmed_at"=>"2017-11-22T09:54:44.000+08:00", "last_activity_on"=>"2018-11-12", "email"=>"demo1@demo.com", "theme_id"=>nil, "color_scheme_id"=>1, "projects_limit"=>5, "current_sign_in_at"=>"2018-11-12T22:55:04.000+08:00", "identities"=>[], "can_create_group"=>true, "can_create_project"=>true, "two_factor_enabled"=>false, "external"=>false}
Backtrace
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/logster-1.3.0/lib/logster/logger.rb:95:in `add_with_opts'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/logster-1.3.0/lib/logster/logger.rb:52:in `add'
/usr/local/lib/ruby/2.5.0/logger.rb:536:in `warn'
/var/www/discourse/plugins/discourse-oauth2-basic/plugin.rb:76:in `log'
/var/www/discourse/plugins/discourse-oauth2-basic/plugin.rb:97:in `fetch_user_details'
/var/www/discourse/plugins/discourse-oauth2-basic/plugin.rb:116:in `after_authenticate'
/var/www/discourse/app/controllers/users/omniauth_callbacks_controller.rb:31:in `complete'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/abstract_controller/base.rb:194:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal/rendering.rb:30:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/callbacks.rb:132:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/abstract_controller/callbacks.rb:41:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal/rescue.rb:22:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/notifications.rb:168:in `block in instrument'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/notifications.rb:168:in `instrument'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activerecord-5.2.0/lib/active_record/railties/controller_runtime.rb:24:in `process_action'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/abstract_controller/base.rb:134:in `process'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionview-5.2.0/lib/action_view/rendering.rb:32:in `process'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-mini-profiler-1.0.0/lib/mini_profiler/profiling_methods.rb:104:in `block in profile_method'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal.rb:191:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_controller/metal.rb:252:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/routing/route_set.rb:34:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/journey/router.rb:52:in `block in serve'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/journey/router.rb:35:in `each'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/journey/router.rb:35:in `serve'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/routing/route_set.rb:840:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-protection-2.0.3/lib/rack/protection/frame_options.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:415:in `call_app!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:369:in `callback_phase'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-oauth2-1.5.0/lib/omniauth/strategies/oauth2.rb:75:in `callback_phase'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:236:in `callback_call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:188:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:168:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:190:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:168:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:190:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:168:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:190:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:168:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:190:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:168:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:190:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:168:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:190:in `call!'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/strategy.rb:168:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/omniauth-1.8.1/lib/omniauth/builder.rb:63:in `call'
/var/www/discourse/lib/middleware/omniauth_bypass_middleware.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/tempfile_reaper.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/conditional_get.rb:25:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/head.rb:12:in `call'
/var/www/discourse/lib/content_security_policy.rb:18:in `call'
/var/www/discourse/lib/middleware/anonymous_cache.rb:214:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/session/abstract/id.rb:232:in `context'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/session/abstract/id.rb:226:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/cookies.rb:670:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/activesupport-5.2.0/lib/active_support/callbacks.rb:98:in `run_callbacks'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/logster-1.3.0/lib/logster/middleware/reporter.rb:31:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/railties-5.2.0/lib/rails/rack/logger.rb:38:in `call_app'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/railties-5.2.0/lib/rails/rack/logger.rb:28:in `call'
/var/www/discourse/config/initializers/100-quiet_logger.rb:16:in `call'
/var/www/discourse/config/initializers/100-silence_logger.rb:29:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/method_override.rb:22:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/actionpack-5.2.0/lib/action_dispatch/middleware/executor.rb:14:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/sendfile.rb:111:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-mini-profiler-1.0.0/lib/mini_profiler/profiler.rb:285:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/message_bus-2.1.6/lib/message_bus/rack/middleware.rb:63:in `call'
/var/www/discourse/lib/middleware/request_tracker.rb:180:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/railties-5.2.0/lib/rails/engine.rb:524:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/railties-5.2.0/lib/rails/railtie.rb:190:in `public_send'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/railties-5.2.0/lib/rails/railtie.rb:190:in `method_missing'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/urlmap.rb:68:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/urlmap.rb:53:in `each'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/rack-2.0.6/lib/rack/urlmap.rb:53:in `call'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/unicorn-5.4.0/lib/unicorn/http_server.rb:606:in `process_client'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/unicorn-5.4.0/lib/unicorn/http_server.rb:701:in `worker_loop'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/unicorn-5.4.0/lib/unicorn/http_server.rb:549:in `spawn_missing_workers'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/unicorn-5.4.0/lib/unicorn/http_server.rb:142:in `start'
/var/www/discourse/vendor/bundle/ruby/2.5.0/gems/unicorn-5.4.0/bin/unicorn:126:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.5.0/bin/unicorn:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.5.0/bin/unicorn:23:in `<main>'
Env
hostname	ptsu28290-4db6b4ea
process_id	[551, 361, 464]
application_version	c7377e2f2d3b5a80977d2603c412942f3bc30808
HTTP_HOST	communitytest.av.demo.com
REQUEST_URI	[/auth/oauth2_basic/callback?code=d33b6d0f8d5aed04c6bb476f04e4df999cf3ac154f64d0733d27624952c09e36&state=ad4099464aa90888d6f853adff7239d16257cb48322509f6, /auth/oauth2_basic/callback?code=00e1ac9c378774997632f22f6362d330afd966e040b99c7cd8610da3c298799b&state=631397f5f556b261411b93db3e562f62bbec14ba0cee125d, /auth/oauth2_basic/callback?code=28220f15b57ca95ae34451fa51689fd649892346184dde1a7357de4a6931dde6&state=e0fc309aeb982bfcf5231b9c732df0db1111aea7c8e0835e, /auth/oauth2_basic/callback?code=0a27f55fe406495b46efc95f1a4e9ab5075dcc1aedbf41349faf8dbc1dd45411&state=dd0029c2522862333df6ad495fc533907fa2e31712ea4a3f, /auth/oauth2_basic/callback?code=2aae00f9efdeb86d7dfbb35877085154162de767e240c37471995dd616efa42b&state=e3f8ccfcacac8c57ae7d4301852de6a89d01fa04985e6588, /auth/oauth2_basic/callback?code=aca7b53f376c5ca90c3e7f6071de77b07f21281d06a6f286f21fc990845889e3&state=d200643c7e880b3e1367de507eb4f586b7f9beb2862c8d84, /auth/oauth2_basic/callback?code=e8c585b45a18ec4a2f9040a009664ae497ec7ca9fe22d2c712bacc8faaa3d668&state=d40dad47b4203dd4362378fb98ff9943a31c8bc74c3f3c5a, /auth/oauth2_basic/callback?code=90aa64d2c3a8e9bd8fcbbfecf63db2d12a34893c760d43470ce9af3410f1a036&state=43e7758052f2d99b3386bff150525c0c2f2b1d4c9bd981b2, /auth/oauth2_basic/callback?code=14ce79ed98c211d2ad82c9418af4b9985eb6fb2850f473892c8b2e7d92d9901e&state=c5d9726770f6b0ad829179cc093cd5b462dd7d4e918bbee3]
REQUEST_METHOD	GET
HTTP_USER_AGENT	Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.1 Safari/605.1.15
HTTP_ACCEPT	text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_REFERER	[http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=ad4099464aa90888d6f853adff7239d16257cb48322509f6, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=631397f5f556b261411b93db3e562f62bbec14ba0cee125d, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=e0fc309aeb982bfcf5231b9c732df0db1111aea7c8e0835e, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=dd0029c2522862333df6ad495fc533907fa2e31712ea4a3f, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=e3f8ccfcacac8c57ae7d4301852de6a89d01fa04985e6588, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=d200643c7e880b3e1367de507eb4f586b7f9beb2862c8d84, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=d40dad47b4203dd4362378fb98ff9943a31c8bc74c3f3c5a, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=43e7758052f2d99b3386bff150525c0c2f2b1d4c9bd981b2, http://gitlab.com/oauth/authorize?client_id=ed428d00ac662b45e7ded0cc923c7ae60eb367d161f857f5290dd6f4b49164b0&redirect_uri=http%3A%2F%2Fcommunitytest.av.demo.com%2Fauth%2Foauth2_basic%2Fcallback&response_type=code&scope=api&state=c5d9726770f6b0ad829179cc093cd5b462dd7d4e918bbee3]
HTTP_X_FORWARDED_FOR	192.168.162.16
HTTP_X_REAL_IP	192.168.162.16
params	
code	[d33b6d0f8d5aed04c6bb476f04e4df999cf3ac154f64d0733d27624952c09e36, 00e1ac9c378774997632f22f6362d330afd966e040b99c7cd8610da3c298799b, 28220f15b57ca95ae34451fa51689fd649892346184dde1a7357de4a6931dde6, 0a27f55fe406495b46efc95f1a4e9ab5075dcc1aedbf41349faf8dbc1dd45411, 2aae00f9efdeb86d7dfbb35877085154162de767e240c37471995dd616efa42b, aca7b53f376c5ca90c3e7f6071de77b07f21281d06a6f286f21fc990845889e3, e8c585b45a18ec4a2f9040a009664ae497ec7ca9fe22d2c712bacc8faaa3d668, 90aa64d2c3a8e9bd8fcbbfecf63db2d12a34893c760d43470ce9af3410f1a036, 14ce79ed98c211d2ad82c9418af4b9985eb6fb2850f473892c8b2e7d92d9901e]
state	[ad4099464aa90888d6f853adff7239d16257cb48322509f6, 631397f5f556b261411b93db3e562f62bbec14ba0cee125d, e0fc309aeb982bfcf5231b9c732df0db1111aea7c8e0835e, dd0029c2522862333df6ad495fc533907fa2e31712ea4a3f, e3f8ccfcacac8c57ae7d4301852de6a89d01fa04985e6588, d200643c7e880b3e1367de507eb4f586b7f9beb2862c8d84, d40dad47b4203dd4362378fb98ff9943a31c8bc74c3f3c5a, 43e7758052f2d99b3386bff150525c0c2f2b1d4c9bd981b2, c5d9726770f6b0ad829179cc093cd5b462dd7d4e918bbee3]
Solve Protect Share

(jk2K) #175

is there any progress ?

Can we provide an option to allow users who log in via oauth to register automatically ?