1

We are building a custom app and want to use customer community licences to allow users to sign up and authenticate to via API using our app UI. We need our app to be able to do the following:

1- Allow Customer Community users to sign up via API. I haven't been able to find a document that explains if this is possible. This needs to be through our app and not Salesforce UI.

2- Allow Customer Community users to be authenticated via API. I think this allows us to achieve that.

So the question is mostly if requirement is possible? I see in this link that Customer Community license doesn't have APIs but I'm assuming that for requests and not for authentication.

  • Have you tried? It seems to me you can answer your own question pretty easily. – gNerb May 18 '18 at 16:47
  • @Jorjani Remember that the registration process is mostly handled server side, so yes, this is achievable via the API. – glls May 18 '18 at 16:49
  • 1
    help.salesforce.com/articleView?id=sso_jit_about.htm&type=5 We used JIT with our community at a university I worked at for registering users, it was all web based and requires an SSO solution. – gNerb May 18 '18 at 16:50
  • Thanks @gNerb. I'm trying to setup with SAML. One thing, I'm not sure is if it is possible to do the full authentication with SF users without ANY other external authentication system. I'm expecting SF to send back either a token or an error saying credentials are not valid. – Jorjani May 18 '18 at 17:48
2

After talking about it in comments and searching around on the web I think your best bet is to enable Self-Registration in your community:

https://help.salesforce.com/articleView?id=networks_customize_selfreg_page.htm&type=5

Once that is enabled your app should contain a link directing new users to this page to register, Luckily, most mobile devices have an easy way to route users to a web page for registration.

Once a user self-registers and gains their password, you'd then want your app to use OAuth to handle authenticating the new user:

https://help.salesforce.com/articleView?id=remoteaccess_authenticate_overview.htm

The user experience would be to click a login button, this would direct to the community log in page where they can enter their credentials, then the server would respond with the authentication token which you would use in all subsequent rest api calls.

If you want to minimize login requests you can configure how long authentication tokens last for before they need to be refreshed:

https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_understanding_refresh_token_oauth.htm

There are a couple authentication methods you could try other than username/password:

  1. User Agent Flow
  2. Web Server Flow

Once you've done that you should be able to do what ever you want with REST by providing the token. I'm not sure what limits are placed on community users and the rest API. I know your link shows that there are 0 API calls per day but I wasn't able to find a definition for what API calls impact that limit.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.