android - 如何正确实现linkedIn登录?

标签 android oauth oauth-2.0 linkedin linkedin-api

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

以下是我的应用程序在 google 登录时的工作方式:

1) 在手机上获取访问 token

2) 将带有访问 token 的电子邮件地址发送到服务器

3) 使用我通过谷歌的 webapi 收到的访问 token 获取用户的详细信息。

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


linkedIn 的问题:

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

Mobile vs. server-side access tokens

It is important to note that access tokens that are acquired via the Mobile SDK are only useable with the Mobile SDK, and cannot be used to make server-side REST API calls.

Similarly, access tokens that you already have stored from your users that authenticated using a server-side REST API call will not work with the Mobile SDK.

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


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

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

最佳答案

就像你说的,你做不到。

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

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

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

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

关于android - 如何正确实现linkedIn登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36675251/

相关文章:

django - 使用带有 token 而不是 Cookie 的 Django session 框架?

java - 谁有权使用 Google 的 OAuth 2 客户端访问我的应用程序?

java - Android SQLite - 尝试访问单行时出现 NullPointerException 但可以访问整个数据吗?

java - Gson 库,将 JsonObject 转换为 MyObject

android - google map android - 无法从 BitmapDescriptorFactory.fromAsset 设置 map 图标

java - Spring 安全、OAUTH Cors、选项

android - 在 Android 应用程序中添加带边框的动态 TableLayout

node.js - 如何以编程方式登录 Facebook oauth2 api

ios - 无法找到在 Swift 中使用 Google 客户端库的用户的 serverAuthCode

java - Google 端点 - Android GoogleAuthIOException Tic Tac Toe - 删除了 clientIds