Войдите с помощью Linkedin OAuth 2.0, используя http GET-запрос (Angular 5) - PullRequest
1 голос
/ 09 июля 2019

После устаревания javascript SDK от Linkedin мой метод "Вход с Linkedin" перестал работать, и теперь мне нужно обновить его, чтобы использовать новый процесс аутентификации OAuth 2.0.

В своем веб-приложении на одностраничном приложении (Angular 5) я делал запрос http GET из моего кода переднего плана, подписывался на него (rxjs) и запрашивал у пользователя авторизацию во всплывающем окне. После получения разрешения всплывающее окно автоматически закрылось, и я смог получить ответ в своей подписке. Это обеспечило хороший пользовательский опыт, поскольку перенаправления не требовались, и я смог получить следующее действие, не покидая исходную страницу.

После того, как OAuth 2.0 стал обязательным, я просто не могу понять, как построить такое же поведение, так как URI перенаправления требуется в https://www.linkedin.com/oauth/v2/authorization,, и если я пытаюсь сделать http GET-запрос к тому же URI Я сталкиваюсь с ошибкой политики CORS, в которой говорится, что в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». "

Кто-нибудь знает, как решить эту проблему с помощью нового API OAuth 2.0 от Linkedin ??

Спасибо!

UPDATE:

Это то, что я сейчас пытаюсь:

authorizeLinkedin (): Observable<any> {
    return this.http
    .get(
      `https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=MY_APP_ID&redirect_uri=MY_REDIRECT_URI&scope=r_liteprofile%20r_emailaddress%20w_member_social`)
    .pipe(catchError((error: any) => this.errorHandler(error)))
  }

signinWithLinkedin (): void {
    this.socialAuth.getLinkedinAuth().subscribe(
      res => {
        console.log(res)
      },
      err => {
        console.log(err)
      }
    )
  }
...