Dimski
@Dimski
Программирование - мое хобби

Как сделать авторизацию через Linkedin с Angular?

Доброго времени суток!

У меня возник вопрос как сделать авторизацию через Linkedin?
Авторизация через Google и Facebook на клиенте сделана через angularx-social-login, а вот Linkedin там нет. Если знакомы рабочие библиотеки прошу дать знать, буду очень благодарен.
Начал делать как описано на оффициальном сайте: https://docs.microsoft.com/ru-ru/linkedin/shared/a...
Проблемы возникли на шаге №3, не могу отправить запрос на https://www.linkedin.com/oauth/v2/accessToken, проблемма с CORS, ошибка в консоли:
Access to XMLHttpRequest at 'https://www.linkedin.com/oauth/v2/accessToken' from origin 'localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Код TS:
export class AppComponent implements OnInit {
  
  constructor(
    private http: HttpClient,
    private route: ActivatedRoute
  ) { }

  ngOnInit() {
    this.route.queryParams
      .subscribe(qp => {
        if (qp && qp.code) {
          this.getDataFromLinkedin(qp.code);
        }
      }, err => console.error(err) );
  }

  loginWithLinkedin(): void {
    const urlCode = 'http%3A%2F%2Flocalhost%3A4200%2F';
    const clientId = '**********';
    const LINKEDIN_URL = `https://www.linkedin.com/oauth/v2/authorization?response_type=code&state=9379992&scope=r_liteprofile&client_id=${clientId}&redirect_uri=${urlCode}`;
    console.log(LINKEDIN_URL);

    window.location.href=LINKEDIN_URL;
  }

  getDataFromLinkedin(code: string): void {
    const redirectURI = 'http%3A%2F%2Flocalhost%3A4200%2F';
    const clientId = '*******';
    const clientSecret = '********';
    const req = {
      grant_type: 'authorization_code',
      code: code,
      redirect_uri: redirectURI,
      client_id: clientId,
      client_secret: clientSecret
    }
    console.log(JSON.stringify(req))
    this.http.post('https://www.linkedin.com/oauth/v2/accessToken', req, {
      headers: new HttpHeaders({
        'Content-Type': 'application/x-www-form-urlencoded'
      })
    })
      .subscribe(res => {
        console.log(res);
      }, err => console.error(err) );
  }
}
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы