现在亚马逊加入了单点登录供应商的行列。它们只支持OAuth2.0。
总而言之,OAuth2.0似乎是获胜的候选者,而不是openid,因为我关心的所有提供者现在都支持oauth。
所以我考虑直接在我的电子商务站点中实现oauth。
Facebook提供了一种完全的服务器端方式,不涉及JavaScripts。
亚马逊没有。
但它都是OAuth2.0,不是吗?
我想实现几个oauth提供程序。其中肯定包括谷歌、脸书、亚马逊和推特。
是否可以使用相同的代码库来实现这一点,或者我必须使用它们的sdk类和JavaScripts将它们分开地隐藏起来?
我可以毫无问题地做到这一点,但我的直觉真的不喜欢它有几个原因(维护、灵活性、添加新的供应商等等)
提供程序之间有很多相似之处,基本流程也是一样的。浏览器中通常不需要任何Javascript。每个提供者给你的只是一个帮助者,让你的事情变得更容易(如果你只是关心他们的话)。
你好像在做一个网站。因此,您需要实现的OAuth2流称为授权代码流。归根结底,这只是几个遵循非常相似模式的http请求:
代码
代码
和client_id
/client_secret
(实质上是web服务器的凭据。access_token
access_token
调用提供程序API。作用域
,这在不同的提供程序之间是不同的。例如:脸书有很多选项,对你要求用户披露的内容(如朋友、照片等)有非常细粒度的控制。LinkedIn有更少的内容(例如个人资料,你的网络,通知)。Amazon只有两个(name,postal_code).这些都是非常特定于提供者的,因为它们与他们所管理的资源相关联。请注意,OAuth本质上是一个授权协议(通常用于身份验证)。在许多情况下,如果您不打算调用它们的API,那么您可以使用最小范围。
/userprofile
endpoint来检索登录用户的属性。但通常,每个模式通常实现不同的模式:有些使用email
,另一些则调用emailaddress
。与last_name
和family_name
等类似。对于我们的系统,我们选择在可能的情况下将所有内容映射到OpenID Connect
userinfo标准声明。并不总是可能的,因为提供者通常提供更多的信息。(以下是我们实际提供的)
关于你的边注:你是对的,总是使用SSL的好理由。这也是一些提供商增加多因素身份验证的原因之一。
是否可以在没有实体的情况下使用JpaRepository?在这种情况下,将其替换为DTO。 如下示例所示 这种情况有替代方案吗? 注意:DTO已经映射,但我不想创建视图来将此DTO转换为实体。 我已经验证了这个主题,但没有重大进展,请使用无实体的JpaRepository交互样式 我在试这个 接口- 公共接口BffDTOInterface2{ } 我有这个错误
我想使用并使其直接进入给定的url,而不是从ribbon配置中获取主机。 我知道在Spring,cloud-feign默认与ribbon和eureka一起出现。 根据这个:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eure
我正在尝试构建一个基本的REST服务,它使用Spring Security和OAuth2.0身份验证和授权进行安全保护。 我试图限制所涉及的元素,所以我不是复制粘贴依赖于Spring bean、Spring MVC等的Spring Security Oath XML配置,而是直接使用Spring Security Oauth类。 尝试从/oauth/Token获取访问令牌时遇到了一个障碍。我可能缺
问题内容: 我正在寻找没有浏览器的Javascript编程。我想从Linux或MacOSX命令行运行脚本,就像我们运行任何其他脚本语言(ruby,PHP,Perl,Python …)一样 我研究了spider monkey(Mozilla)和v8(Google),但它们似乎都是嵌入式的。 是否有人将Javascript作为脚本语言从命令行执行? 如果有人好奇,为什么我期待到这一点,我一直在关注着N
我正在开发一个服务器端应用程序,即RESTAPI。用户可以通过这个API将自己手工制作的客户端的数据发布到我们自己的系统中。当然,我会记录数据的格式。但我的问题是,使用OAuth2实现身份验证是明智之举,还是我最好只使用SSL基本身份验证路由?若然,原因为何?我在谷歌上搜索了大量关于OAuth2的帖子和指南,如果不是他们正在处理的客户端,那就是Spring Security组合,我发现它很难遵循,
我试图在不使用Box2D的情况下为libgdx角色(玩家和敌人)实现碰撞检测。正如我所读到的那样,Box2D支持内置碰撞检测,但由于我的游戏不涉及环境中的任何物理因素,因此我不习惯仅为此使用Box2D。 我发现的许多示例通过为此定义一个边界框(矩形)来启用冲突检测,但我正在寻找一个内置的解决方案。