我正在关注RESTful api linkedin文档,我对如何处理来自linkedin的重定向感到困惑,我现在在我的html中工作了。
linkedInAuth.component.html
(click)="linkedInAuthorization()"
然后在我的linkedInAuth.component.ts中,我只是将我的应用程序重定向到linkedin auth,这是成功的。但我不确定这是否是最好的方法,因为我不喜欢我从这里处理重定向的选项。
export class LinkedInAuthComponent {
linkedInAuthorization(){
window.location.href='https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=88myid888&redirect_uri=http://localhost:3000/dashboard&state=234123rweqwe';
}
}
然后在我的dashboard.component.ts
中export class DashboardComponent implements OnInit{
code: string;
state: string;
constructor(
private router: Router,
private route: ActivatedRoute
) {}
ngOnInit() {
let code = this.route.snapshot.queryParams['code']
let state = this.route.snapshot.queryParams['state']
console.log(code);
console.log(state);
}
}
有没有办法让linkedIn uri的Angular2指向一个服务来处理在linkedin(localhost:3000 / dashboard)中指定的重定向并将数据保存到我的数据库而不使用组件?我认为更好的方法是从linkedInAuthComponent中的重定向点向服务提供此服务。不知道如何处理这个问题。
答案 0 :(得分:0)
答案 1 :(得分:0)
我昨天写了一篇关于类似问题的中篇文章。
不要使用窗口。当角度释放Angular Universal时,它最初会出于性能和搜索引擎优化的原因呈现模板服务器端。这样做会失去对窗口对象的引用。
这是我的文章https://medium.com/@D_ofashandfire/i-love-hate-linkedin-oauth-2d7b602926c6
tldr,这个实例中的SDK真的坏了。我发现使用REST API然后通过服务器端实现接收auth代码更加容易和简单。
这是一个示例组件。
https://gist.github.com/dashcraft/4b3853e558eaec656123342d1174912c
当重定向返回时,它将使用参数"代码"返回到您的重定向网址。因此,您可以在路由器中将其解析为您网址上的可选查询参数。