Доброго времени суток!
У меня возник вопрос как сделать авторизацию через 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) );
}
}