问题标签 [social-authentication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
167 浏览

java - 仅使用 Java Spring 从服务器(Facebook 和 Google 访问令牌)进行身份验证

我只想验证从 javascript 获得的用户访问令牌。

我正在使用春季休息服务。

我已经看到了: https ://developers.google.com/identity/sign-in/web/server-side-flow 但是我正在尝试为 facebook 和 google 找到确切的代码片段。

有没有人有任何代码片段可以分享或指导任何 github。包括依赖关系也是因为这些也会产生一些冲突。


我个人的解决方案是这个。它稳定吗?我将使用这两个网址https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=
https://graph.facebook.com/app?access_token做简单的 hhtp 获取 并比较用户 ID 和电子邮件并且名称匹配。

如果有人从他们的不同应用程序的个人 facebook 登录结构中找到此访问令牌(假设第 3 方网站也有 facebook 登录)并使用相同的令牌进入我的服务(将该令牌从第 3 方服务发送到我的服务 api)可以我做一些事情来验证这个用户访问令牌实际上是从我自己的登录系统收到的吗?因为有了这 2 个 http 获取,就没有秘密 api 密钥或任何东西。谢谢

0 投票
1 回答
421 浏览

javascript - 如何向我的 webapp 添加多个社交登录并在客户端进行身份验证?

我想在我的网站上添加流行的社交身份验证机制,我查看了护照库(https://www.npmjs.com/package/passport),但我想通过弹出窗口而不是重定向到谷歌来实现客户端身份验证/ Facebook。我看到讨论在他们的 iframe 嵌入上做了类似的事情。市场上是否有可用的库来执行此操作,或者我需要自己手动执行此操作?

0 投票
1 回答
1470 浏览

python - “不允许使用您的凭据” - Google+ API - 生产

我最近在我的本地服务器上植入了与 facebook 和 google 的连接,一切正常。但是,当我尝试在生产中执行此操作时,与谷歌的连接返回:“不允许您的凭据”。(脸书有效)

我不知道为什么,因为我很确定我的申请得到了 Google 的确认。你有什么想法吗?

提前致谢 !

0 投票
1 回答
89 浏览

javascript - 如何处理小部件的谷歌登录

我正在创建一个小部件。逃脱我的部分是实施社交媒体身份验证。

小部件是通过嵌入的 javascript 完成的,并接管<div>页面上的 a 而不是使用 iframe。

我遇到的问题是我想避免重定向。不是因为我不想处理它们,而是因为我想让小部件尽可能友好。基本的 google 登录按钮创建一个处理身份验证客户端的弹出窗口。它对我的用例来说绝对是完美的,除了它需要一个 client_id:

我可能是错的,但我相信如果我在嵌入到某人的网站时使用此方法,我可能会覆盖他们的 client_id 并导致冲突,或者谷歌可能只会取消第二次初始化尝试并使用他们的 client_id。在任何一种情况下,我都不相信那是我应该做的。有没有什么方法可以在没有重定向的情况下设置客户端身份验证,以便我的小部件不会干扰网站可能正在使用的 google api?

我有一种使用重定向并避免此问题的方法,但我真的希望能够完成整个社交身份验证,而无需从嵌入小部件的页面移动。

0 投票
1 回答
50 浏览

javascript - 代表另一台设备登录社交登录

我有一个类似信息亭的系统,我希望用户对其进行身份验证。例如,它具有使用 Gmail 的社交登录功能。它没有键盘,所以登录有点尴尬。

是否可以让另一台设备(例如智能手机)登录并传输凭据(令牌 - 而不是密码;))?(假设我有办法将两者联系起来——比如二维码)。

有点像我如何通过手机的回声登录 Spotify。

凭据是否曾经传递给设备,或者服务器是否被授权访问我的帐户并代表设备行事?

我真的很想知道如何正确处理这种类型的身份验证方案。

0 投票
2 回答
1807 浏览

android - 在 Android 中使用自定义登录按钮时如何设置 Facebook 登录权限

我正在按照本指南在我的 Android 应用程序中通过 Facebook 设置社交登录:https ://developers.facebook.com/docs/facebook-login/android/permissions

使用 FacebookLoginButton设置回调来处理用户身份验证结果很容易:

但是当我与其他 Android 按钮交换时LoginButton,我无法再使用该setReadPermissions功能。

我的问题是:使用自定义登录按钮时,如何向 Facebook 请求用户的电子邮件许可?

0 投票
1 回答
30 浏览

oauth-2.0 - 社交登录使提供商应用程序保持登录状态

  1. 我访问了一个使用 oauth 社交登录的应用程序
  2. 我选择说gmail;我被发送到 gmail 网站
  3. 我登录到 gmail,然后被发送回应用程序
  4. 完成应用程序后,我退出

在第 4 步之后,即使我关闭浏览器并重新打开,访问 gmail 也会立即打开我的帐户,而不会提示输入密码。请记住,我从不让浏览器保存我的密码,我也从不勾选“记住我”</p>

我不确定普通用户是否会记得单独访问 gmail 以注销;这在公共计算机上将是灾难性的。

我的问题:

这是 oauth2 的设计缺陷,还是第 1 步中应用程序的实施缺陷,还是 google-login 的实施缺陷?或者第 1 步中的应用程序在技术上是否不可能退出社交身份提供者(在这种情况下,这根本不是缺陷。)

0 投票
1 回答
45 浏览

android - Android - 如何通过我的网站(使用社交网络)登录并接收 jwt 令牌?

我有带有大量社交登录的 laravel 网站,并且想使用我的网站进行社交身份验证。

我希望发生这种情况:当我的应用程序用户单击社交登录按钮时 - 我的网站社交登录 url 已启动,并且在他成功登录后重定向到应用程序并登录到我的应用程序。

我发现很多应用程序都在这样做,但我不知道如何。

编辑:我使用 jwt 实现的简单登录。对于网络请求,我使用改造。

0 投票
0 回答
40 浏览

android - 2018 年在 Android 上实现社交媒体登录的方式是什么?

我已经手动实现了 Google 和 Facebook 登录,但是登录按钮看起来不同,所以我正在寻找一种更方便的方法来实现它。

似乎有AuthUI.getInstance().createSignInIntentBuilder()似乎已被弃用。JavaDoc 说

@deprecated 这个常量不再需要,使用 {@link IdpConfig.FacebookBuilder}

所以我查找了Google Identity Toolkit,但至少根据这个 Github Repository 似乎自 2013 年以来就不再开发了

https://github.com/googlesamples/identity-toolkit-android

除了手动进行按钮布局以使它们相等之外,现在是否有一些常见的方法可以做到这一点?

0 投票
1 回答
449 浏览

asp.net-core - LinkedIn 用户个人资料图像 URL 中的参数

我在我的 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参数可能是某种类型的时间戳,这意味着它可能总是不同的。我不想做出这样的假设,因此提出了这个问题。