我有一个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收到后发送到网络服务器的电子邮件地址,我可以使用我想要的任何电子邮件地址登录。
答案 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。