parse-community / parse-server

Parse Server for Node.js / Express
https://parseplatform.org
Apache License 2.0
20.83k stars 4.77k forks source link

Vkontakte Adapter fails authentication. #8626

Open MattKirchhof opened 1 year ago

MattKirchhof commented 1 year ago

New Issue Checklist

Issue Description

Vkontakte Adapter fails authentication.

When trying to use Parse to authenticate a vkontakte account holder (via Adapters/Auth/vkontakte.js), we encounter the following error:

"Parse error: Vk appIds or appSecret is incorrect."

stack trace:

"Error: Vk appIds or appSecret is incorrect.at /app/node_modules/parse-server/lib/Adapters/Auth/vkontakte.js:20:11 at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5) at async Promise.all (index 0)"

We have noticed that the vkontakte.js file has not been updated since 2020. We have verified multiple times that our appId and secret are correct and unchanged.

After contacting VK support, they noted an API change as of Oct 2022. See their response:

Reply - "Since October 17, 2022, we have disabled the ability to obtain a service token through the Client Credentials Flow: https://dev.vk.com/reference/roadmap#Disabling_Clien... If you are working with methods in the secure section, you need to use the service key from the application settings."

Steps to reproduce

Any login via vkontakte results in this error

When performing the request manually via curl (following current vkontakte.js current implementation), we receive an error:

curl -X POST 'https://oauth.vk.com/access_token' \ -d 'grant_type=client_credentials' \ -d 'client_id=0000000' \ -d 'client_secret=XXXXXXXXXXXXXXXXXXXX' \ -d 'v=5.124'

{"error":"invalid_grant","error_description":"Access denied"}

Actual Outcome

See above stack trace and error

Server

Database

Client

Logs

{"code":101,"level":"error","message":"Parse error: Vk appIds or appSecret is incorrect.","stack":"Error: Vk appIds or appSecret is incorrect.\n at /app/node_modules/parse-server/lib/Adapters/Auth/vkontakte.js:20:11\n at runMicrotasks ()\n at processTicksAndRejections (node:internal/process/task_queues:96:5)\n at async Promise.all (index 0)"}

parse-github-assistant[bot] commented 1 year ago

Thanks for opening this issue!

mtrezza commented 1 year ago

Thanks for reporting this; do you want to open a PR to make the API changes?

MattKirchhof commented 1 year ago

Sure! I have a fixed version of vkontakte.js ready for review, if you could help me open a PR to do so.

mtrezza commented 1 year ago

See our Contribution Guide for how to make a pull request, or read our New Contributor's Guide if this is your first time contributing.