如何正确实现linkedIn登录?

时间:2016-04-17 10:16:29

标签: android oauth oauth-2.0 linkedin linkedin-api

我有一个andorid应用程序,我正在尝试在其中实现linkedIn登录。 LinkedIn SDK已成功集成,我也会收到用户信息以及电子邮件地址。

以下是我的应用适用于Google登录的方式:

1)在移动设备上获取访问令牌

2)向服务器发送带有访问令牌的电子邮件地址

3)通过google的webapi获取具有访问令牌的用户的详细信息。

4)如果回复电子邮件与从移动设备收到的电子邮件匹配,则检查该电子邮件地址是否存在。如果没有创建帐户并登录其他明智的登录。

linkedIn:

的问题

我收到的访问令牌属于mobile sdk,我不能使用相同的令牌来发出REST API请求。 (as per documentation

  

移动与服务器端访问令牌

     

重要的是要注意通过网站获取的访问令牌   Mobile SDK仅可用于Mobile SDK,不能用于   进行服务器端REST API调用。

     

同样,访问您已经存储在用户中的令牌   使用服务器端REST API调用进行身份验证将无法正常工作   使用Mobile SDK。

那么如何在我的网络服务器上验证上面提到的步骤3)中的细节?

这是一场灾难吗? 我确信必须有办法做我想做的事情,因为有很多应用程序让他们的用户通过他们的移动应用程序上的linkedin登录。

因为如果它不可能,那么任何人都可以轻松地更改移动应用程序从linkedin收到后发送到网络服务器的电子邮件地址,我可以使用我想要的任何电子邮件地址登录。

2 个答案:

答案 0 :(得分:2)

就像你说的那样,你不能这样做。

相反,您必须使用不同的方法,在设备上获取所需信息,由LinkedIn返回并将其发送到您的服务器。使用HTTPs连接来避免 MITM 攻击。

如果您从官方信息下载应用程序,则不应在设备上修改。

另一种安全机制: 如果您想要更高的安全性,您可以加密服务器上的数据,将HASH发送到移动设备,使用 LinkedIn令牌查询信息,并使用另一种算法比较收到的数据是否相同。

但我认为这是一个过于昂贵的机制,只能使用HTTPS连接而不是从非官方商店下载APK。

答案 1 :(得分:2)

文档明确指出,您无法使用从Android SDK获取的AccessToken来进行自己的REST API调用。

但是,有一种方法可以使用移动SDK进行REST API调用,请查看制作

  

经过身份验证的REST API调用   从这里:https://developer.linkedin.com/docs/android-sdk

如果您想要检索用户个人资料信息,则必须使用移动SDK。