Oauth sign in

Hello,
Is it possible to log in and create account with oauth? Are there any endpoints APIs to do this? Can anyone send some short instructions? Please help.

Yes, this is possible. https://docs.getindico.io/en/stable/config/auth/

Not sure which endpoints/APIs you mean; if you use sign in with oauth then indico is the oauth client, not the oauth provider.

Or do you want to sign in somewhere else using indico accounts? In that case you can create an oauth application from the indico admin area.

I need login to indico from another portal. I don’t know how to call oauth actions on the Indico system. I call http://localhost:8000/oauth/authorize?client_id=dc091b18-7561-4688-9fad-7e0495172699&response_type=code&scope=test and when I am logged out, I am taken back to the login page, otherwise I receive the message ‘invalid_scope’. Where can I find scope and how call this without log on?

I don’t understand what exactly you are trying to do. You cannot log in the user automatically to Indico from another portal, but if the other portal has an OAuth provider, then you can enable it in Indico and link directly to the login page, which will basically log the user in immediately by going through the oauth flow.

The oauth scopes indico supports are:

  • read:user: User information (read only)
  • read:legacy_api: Legacy API (read only)
  • write:legacy_api: Legacy API (write only)
  • registrants: Event registrants

You probably only need the first one (an OAuth token with that scope can be used to call /api/user/ to get information about the user). FYI, those options are listed in the admin are when creating a new OAuth app.

1 Like

Now I understand a lot more thanks for your help.

I have already set up oauth and now I have a different problem. When system use identity provider oauth2_client_cls is empty and display errorTypeError: 'NoneType' object is not callable in indico/env/lib/python2.7/site-packages/authlib/integrations/_client/base_app.py", line 125, in _get_oauth_client. Please help.
My provider object:

{
   "_fetch_request_token":"None",
   "_fetch_token":"None",
   "_save_request_token":"None",
   "_server_metadata_url":"None",
   "_update_token":"None",
   "access_token_params":"None",
   "access_token_url": "http://localhost/oauth/access_token",
   "api_base_url":"None",
   "authorize_params":"None",
   "authorize_url":  "http://localhost/oauth/authorize",
   "client_auth_methods":"None",
   "client_id":"None",
   "client_kwargs":{

   },
   "client_secret":"None",
   "compliance_fix":"None",
   "name": "test_flaskmultipass",
   "oauth1_client_cls":"None",
   "oauth2_client_cls":"None",
   "request_token_params":{
      "scope": "read:user"
   },
   "request_token_url":"None",
   "server_metadata":{
       "access_token_method":     "POST",
      "base_url":     "http://localhost",
      "consumer_key":   "test",
      "consumer_secret": "test2"
   }
}

Now I’m back to not understanding what you want to do…

Please paste the full traceback if you get an error. Right now I don’t even know if the error comes from Indico or some oauth test code you have that just happens to use flask-multipass as well.