Angular2 Linkedin重定向uri

时间:2016-09-06 21:52:38

标签: angular linkedin

我正在关注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中的重定向点向服务提供此服务。不知道如何处理这个问题。

2 个答案:

答案 0 :(得分:0)

您是否已查看此组件以在Angular2中启用OAuth2?看起来很有希望:

https://www.npmjs.com/package/angular2-oauth2

希望有所帮助

答案 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

当重定向返回时,它将使用参数"代码"返回到您的重定向网址。因此,您可以在路由器中将其解析为您网址上的可选查询参数。