3

我在我的 ASP.NET Core 应用程序中使用社交身份验证,其中之一是 LinkedIn 身份验证。

看起来 LinkedIn API 发生了一些变化,现在我们似乎得到了一些带有用户图像的参数。

这是我从 LinkedIn API 获得的虚拟完整/原始图像 URL。知道这些参数是什么意思吗?特别是,以 ? 开头的那个t

https://media.licdn.com/dms/image/A1205CPGrwDzHZS_Apr/profile-originalphoto-shrink_900_1200/0?e=1525989600&v=beta&t=PNuO2bh5rNrIJv19PN1OXOjzDWcQgKdYCl1-ZVzgPOw

这很重要的原因是,当用户登录时,我会将数据库中已有的数据与来自 LinkedIn 的新数据进行比较——在我的例子中,它仅限于用户个人资料图像,即较小尺寸的图像和用户上传的原始文件。

我注意到图像总是显示不同。在更仔细的分析中,我可以看到这些参数,特别是开始的参数t是差异所在。这个小的更改会在我的代码中触发一个事件来更新用户的图像,这可能是一个完全浪费的数据库调用。我可以通过我自己的 LinkedIn 登录来确认这一点。即使我的图像没有改变,由于t组件的这种差异,原始图像的图像 URL 总是不同的。

t参数可能是某种类型的时间戳,这意味着它可能总是不同的。我不想做出这样的假设,因此提出了这个问题。

4

1 回答 1

0

我尝试了以下 LinkedIn 端点“ https://api.linkedin.com/v2/me?oauth2_access_token= ”。

对我来说,“pictureInfo”部分下有两个图像,“croppedImage”和“masterImage”。我试图复制您提到的问题,但有一段时间无法复制。在某些时候,我收到了“masterImage”的不同图像 URN。没有后。测试我知道'masterImage'每小时更新一次。有了这个,我进一步尝试了解图像 URN 中的参数。

从这些,

  • v=beta 是明确的。早些时候它是 v=alpha 为少数。
  • e 似乎是与某个到期时间相关的时间戳。
  • 当 e 变化时,t 也在变化。

鉴于此分析,如果您使用“masterImage”触发数据库调用,您可以使用正则表达式匹配标准来识别图像的实际变化。

于 2018-05-18T18:52:27.963 回答