Oauth 2.0 ORCID是否有Spring社交客户端模块?

Oauth 2.0 ORCID是否有Spring社交客户端模块?,oauth-2.0,single-sign-on,spring-social,orcid,Oauth 2.0,Single Sign On,Spring Social,Orcid,是否有(开放式研究人员和贡献者ID)的客户端模块?已经有用于服务提供商(如、等)的客户端模块 ORCID提供了一个持久的数字标识符,可以区分不同的研究人员。它已被全球采用,在撰写本文时(2016年6月),有近250万ORCID ID注册 ORCID基于OAuth 2.0协议,使用ORCID提供SSO(单点登录)服务。越来越多的web应用程序需要支持带有ORCID的SSO。而且可能需要更多的web应用程序来使用ORCID基于OAuth 2.0的REST API,例如,向ORCID注册表提交文章/数

是否有(开放式研究人员和贡献者ID)的客户端模块?已经有用于服务提供商(如、等)的客户端模块

ORCID提供了一个持久的数字标识符,可以区分不同的研究人员。它已被全球采用,在撰写本文时(2016年6月),有近250万ORCID ID注册

ORCID基于OAuth 2.0协议,使用ORCID提供SSO(单点登录)服务。越来越多的web应用程序需要支持带有ORCID的SSO。而且可能需要更多的web应用程序来使用ORCID基于OAuth 2.0的REST API,例如,向ORCID注册表提交文章/数据

Spring社交框架已被广泛用于将Spring应用程序连接到软件即服务(SaaS)API提供商,如Facebook、Twitter和LinkedIn。ORCID的Spring社交客户端模块,类似于Spring社交Facebook等,将大大简化上述web应用程序的开发,这将对全球所有学科学术领域的出版商、机构等非常有益。

,作为Spring Social的扩展,支持与ORCID的集成。(注:我已将此项目用于欧洲PMC,新版本将发布到)

我还编写了使用Spring Social ORCID模块(以及Spring Social Facebook)来测试该模块,并演示如何使用它,其方式与使用Spring Social Facebook几乎相同

不仅仅是web应用程序,您还可以在web服务中使用Spring Social ORCID,如所示。web服务还支持“记住我”功能

任何web应用程序都可以通过JavaScript使用基于Spring社交ORCID的web服务连接到ORCID。我创建了一个应用程序来演示这一点,它也利用了“记住我”功能


Spring Social ORCID项目还远远不够完美,但我认为这是一个不错的开始:-)欢迎您使用fork并帮助改进它。

为了跟进Yuci,我创建了一个Spring和Spring boot集成示例库。有些只需要配置。ORCID最近发布了OpenID Connect和隐式OAuth功能,现在您还可以使用少量javascript进行客户端身份验证

ORCID端的更改意味着Spring boot只需要:

还有一个使用JWT的仅客户端隐式流的示例。下面是ORCID OAuth和OpenID connect的更多示例

@SpringBootApplication
@EnableOAuth2Sso
@Controller
public class ReallySimpleOrcidOauthApplication {

    @RequestMapping("/")
    @ResponseBody
    public final String home() {
        return "Welcome, " + SecurityContextHolder.getContext().getAuthentication().getName();
    }

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(ReallySimpleOrcidOauthApplication.class);
        Properties properties = new Properties();
        properties.put("security.oauth2.client.clientId", "XXX");
        properties.put("security.oauth2.client.clientSecret", "XXX");
        properties.put("security.oauth2.client.accessTokenUri", "https://sandbox.orcid.org/oauth/token");
        properties.put("security.oauth2.client.userAuthorizationUri", "https://sandbox.orcid.org/oauth/authorize");
        properties.put("security.oauth2.client.tokenName", "access_token");
        properties.put("security.oauth2.client.scope", "openid");
        properties.put("security.oauth2.resource.userInfoUri", "https://sandbox.orcid.org/oauth/userinfo");
        application.setDefaultProperties(properties);
        application.run(args);
    }
}