hello.js oauth to linkedin - ошибка прокси-сервера heroku или неверное определение приложения

Доброе утро

Я пытаюсь создать кнопку "Войти через LinkedIn" с помощью hello.js. Я использовал этот пример: hello.js - пример демо-версии. Все в порядке, и я могу войти в LinkedIn.

Теперь я пытаюсь изменить значение LINKEDIN_CLIENT_ID в строке 25. Эта константа определена в client_ids.js, и ее значение равно "bixrjszkfk0j". Это API-ключ приложения hello.js LinkedIn. Мне нужно изменить его на API-ключ моего приложения в LinkedIn.

Когда я меняю ключ, я не могу войти. Я вижу мое приложение в подсказке LinkedIn: "Test2 хотел бы получить доступ к некоторым сведениям о вашей LinkedIn", но швы, что LinkedIn препятствуют успешному входу в это приложение.

Поскольку я только что изменил ключ API, проблема должна заключаться в определении моего приложения в LinkedIn, а не в коде.

Это изображение из определения моего приложения на LinkedIn: http://i.imgur.com/oUHY6vk.png

Больше информации:

С помощью API-ключа приложения hello.js я вижу, что после входа в систему это значение устанавливается в Локальное хранилище браузера (Chrome 28 в Ubuntu 13.04):

{
"sync_service":"linkedin",
"linkedin":{
    "expires_in":5104774,
    "access_token":"AQV_zG8n88HW ... (a long id)",
    "state":"",
    "client_id":"bixrjszkfk0j",
    "network":"linkedin",
    "display":"popup",
    "oauth_proxy":"https://auth-server.herokuapp.com/proxy",
    "scope":["basic"],
    "oauth":{
        "version":2,
        "auth":"https://www.linkedin.com/uas/oauth2/authorization",
        "grant":"https://www.linkedin.com/uas/oauth2/accessToken"
    },
"expires":1392801856.753
}
}

Для моего ключа API я получил этот результат в локальном хранилище:

{
"linkedin":{
    "error":{
        "code":"required_credentials",
        "message":"Could not find the credentials for signing this request, ensure that the correct client_id is passed"
    },
    "error_message":"Could not find the credentials for signing this request, ensure that the correct client_id is passed",
    "state":"",
    "client_id":"77j96nqcybx2hg",
    "network":"linkedin",
    "display":"popup",
    "oauth_proxy":"https://auth-server.herokuapp.com/proxy",
    "scope":["basic"],
    "oauth":{
        "version":2,
        "auth":"https://www.linkedin.com/uas/oauth2/authorization",
        "grant":"https://www.linkedin.com/uas/oauth2/accessToken"
    }
}
}

Также я проверил свой Apache access.log. В обоих случаях у меня есть GET-запросы, подобные этим:

для приложения hello.js:

http://myhost.abc/dl/aa/b.html?code=AQT7xj4N22o7hGQhnB2kuBD7pet7CM8YF9IYEckbcTMbxVRxKykxBZdZAUmtuOz9UjHYnqE7t8am4A9aMjLCeu2FBZjL3yEp_SG_ks3qal8TFOoW5Hs&state={"client_id":"bixrjszkfk0j","network":"linkedin","display":"popup","callback":"_hellojs_44aevwkw","state":"","oauth_proxy":"https://auth-server.herokuapp.com/proxy","scope":["basic"],"oauth":{"version":2,"auth":"https://www.linkedin.com/uas/oauth2/authorization","grant":"https://www.linkedin.com/uas/oauth2/accessToken"}}

для моего приложения:

http://myhost.abc/dl/aa/b.html?code=AQROQFhP2BawiylIN1Oz3qNVqodrABXExHOtX_gd_WXhqK7rAoWpR5cbNZBdWpkijh6iKfXiP3lwTodrpADm270H9Uuu5jSk6WOCOV-dB-3YkIyf7i0&state={"client_id":"77j96nqcybx2hg","network":"linkedin","display":"popup","callback":"_hellojs_3l93c9ah","state":"","oauth_proxy":"https://auth-server.herokuapp.com/proxy","scope":["basic"],"oauth":{"version":2,"auth":"https://www.linkedin.com/uas/oauth2/authorization","grant":"https://www.linkedin.com/uas/oauth2/accessToken"}}

Также в списке авторизованных внешних приложений в моей учетной записи LinkedIn я могу видеть как "Test2", так и "HelloJS OAuth2". Итак, я пришел к выводу, что мое приложение (Test2) успешно вошло в систему. Есть ли проблема в прокси-приложении hello.js heroku? Или я должен что-то изменить в определении моего приложения?

Спасибо

1 ответ

Зарегистрируйте ключ и секрет приложения с помощью https://auth-server.herokuapp.com/ к сожалению, потокам OAuth1 на стороне клиента по-прежнему нужен прокси-сервер на стороне для аутентификации и авторизации, поскольку они не могут хранить секрет в безопасности.

Другие вопросы по тегам