javascript - 使用 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)
}
)
}
解决方案
推荐阅读
- jira - 将 Zephyr 测试用例从 Jira 服务器迁移到 Jira 云的步骤
- ruby-on-rails - Rails - 作为对话一部分的电子邮件(邮箱?)
- azure - azure 中可用的最小虚拟机是什么?
- c# - 使用 MVC asp.net 重定向到操作不起作用
- laravel - Laravel 嵌套路由 slug 链接
- php - 向产品添加下拉菜单并在 Woocommerce 购物车上显示价值
- dart - dart 格式 0.052 到 0.06
- angular - how to specify a set of tests to karma programmatically?
- python - 最大化形成交集的集合数
- php - 从 SimpeXML 转换时压缩数组