Hi there,
I tried to integrate my custom social login provider (authentik).
According to the slightly limited documentation the redirect URL should be:
/api/method/frappe.integrations.oauth2_logins.custom/authentik
But then I get the follwing error message:
Traceback (most recent call last):
File “apps/frappe/frappe/app.py”, line 69, in application
response = frappe.api.handle()
File “apps/frappe/frappe/api.py”, line 54, in handle
return frappe.handler.handle()
File “apps/frappe/frappe/handler.py”, line 45, in handle
data = execute_cmd(cmd)
File “apps/frappe/frappe/handler.py”, line 83, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File “apps/frappe/frappe/init.py”, line 1599, in call
return fn(*args, **newargs)
TypeError: custom() missing 2 required positional arguments: ‘code’ and ‘state’
Any ideas how to solve this?
Thanks lot!
Meanwhile I figured out how to set up Authentik as custom social login provider (works really nice).
This is the configuration needed in ERPNext / Frappe:
Client ID: From Authentik Provider
Client secret: From Authentik Provider
Base URL {URL of your Authentik instance}
Authorize URL /application/o/authorize/
Redirect URL /api/method/frappe.integrations.oauth2_logins.custom/authentik (if you name the social login “authentik”)
Access Token URL /application/o/token/
API Endpoint https://{URL of your Authentik instance}/application/o/userinfo
In Authentik you have to do:
Create a new OAuth2 / OpenID provider
Client type: confidential
Client ID / secret should get auto generated → put in ERPNext (see above)
Redirect URI: https://{URL of your ERPNext Site}/api/method/frappe.integrations.oauth2_logins.custom/authentik (if you name the social login “authentik”)
Signing Key: Create a new self-signed key
Create a new app in Authentik and assign the provider you created
Set everything up to your liking (Name, description, icon, etc.)
Launch URL: Copy the Link from your ERPNext Site which should say: Login with authentik (or every other name you picked)
Hope that helps other user that want to use Authentik as SSO / Social Login provider
1 Like
I get a similar error here but exactly the same configuration as provided by @DrZ0idberg.
Traceback (most recent call last):
File "apps/frappe/frappe/app.py", line 69, in application
response = frappe.api.handle()
File "apps/frappe/frappe/api.py", line 54, in handle
return frappe.handler.handle()
File "apps/frappe/frappe/handler.py", line 45, in handle
data = execute_cmd(cmd)
File "apps/frappe/frappe/handler.py", line 83, in execute_cmd
return frappe.call(method, **frappe.form_dict)
File "apps/frappe/frappe/__init__.py", line 1607, in call
return fn(*args, **newargs)
TypeError: custom() missing 1 required positional argument: 'code'
Has anyone come across this?
I just came across this, what solved it for me was adding this to the configuration in ERPNext / Frappe:
Auth URL Data: {“response_type”: “code”, “scope”: “email profile openid”}