We are implementing the integration of our existing web resource with Rocket.Chat. We are using the community version of Rocket.Chat. For this, user authorization via OAuth2 has already been done.
Now I am faced with the problem of proactively creating a user (when applying for a job, for example) without the participation of the user himself. Rocket.Chat API allows you to create a user, but it is a normal user (when creating, you cannot specify that this account will be authorized via OAuth and, accordingly, associate it with the account of the web resource).
Another option: on the side of the web resource, simulate a request for obtaining an Authorization Code via the OAuth protocol and send a correct response to this request to the Rocket.Chat server. Thus, the Rocket.Chat server would then receive the user’s token and data and automatically create his account. But this is impossible, because according to the protocol specification, when requesting an Authorization Code, the client pass a randomly generated string (“state” field), which is returned unchanged when answering this request, and the server, checking the equivalence of this value, protects itself from such manipulations.
I am also trying to work with the Rocket.Chat Apps-Engine framework, but I still can’t figure out how to create such accounts through it.
I would be grateful for any experience or ideas on how to solve this problem!