首页 > 解决方案 > 使用 http GET 请求(Angular 5)使用 Linkedin OAuth 2.0 登录

问题描述

在 Linkedin 的 javascript SDK 弃用后,我的网站的“使用 Linkedin 登录”方法停止工作,现在我必须对其进行更新以使用新的 OAuth 2.0 身份验证过程。

在我的单页应用程序 webapp(Angular 5)中,我曾经从我的前端代码发出一个 http GET 请求,订阅(rxjs)它并在弹出窗口中要求用户授权。获得许可后,弹出窗口自动关闭,我能够在我的订阅中得到响应。这提供了良好的用户体验,因为不需要重定向,并且我能够在不离开原始页面的情况下获得下一个操作。

在 OAuth 2.0 成为强制性之后,我只是不知道如何构建相同的行为,因为https://www.linkedin.com/oauth/v2/authorization中需要重定向 URI ,如果我尝试制作对同一个 uri 的 http GET 请求我面临一个 CORS 策略错误,说“请求的资源上不存在‘Access-Control-Allow-Origin’标头。”。

有谁知道如何使用 Linkedin 的新 OAuth 2.0 API 来解决这个问题?

谢谢!

更新:

到目前为止,这是我正在尝试的:

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)
      }
    )
  }

标签: javascriptangularrxjslinkedinlinkedin-api

解决方案


推荐阅读