Spring Social是否有ORCID客户端模块(开放研究员和贡献者ID)?服务提供商已有客户端模块,例如Spring Social Facebook,Spring Social Twitter,Spring Social LinkedIn等。
ORCID提供了一个持久的数字标识符,可以将一位研究人员与另一位研究人员区分开来。它已被全球采用,在撰写本文时(2016年6月),已有近二百五十万个ORCID iD注册。
ORCID基于OAuth 2.0协议提供带有ORCID的SSO(单点登录)服务。使用ORCID支持SSO需要越来越多的Web应用程序。并且可能还有更多的Web应用程序需要使用ORCID的基于OAuth 2.0的REST API,例如,将文章/数据提交给ORCID Registry。
Spring Social框架已广泛用于将Spring应用程序连接到软件即服务(SaaS)API提供程序,如Facebook,Twitter和LinkedIn。 ORCID的Spring Social客户端模块,类似于Spring Social Facebook等,将极大地简化上述Web应用程序的开发,这对于所有学科领域的出版商,机构等都非常有益。世界。
答案 0 :(得分:2)
我创建了the Spring Social ORCID project,作为Spring Social的扩展,可以与ORCID集成。 (注意:我已将此项目投入欧洲PMC,新版本将发布到its GitHub repository)
我还写过an example web application使用Spring Social ORCID模块(以及Spring Social Facebook)来测试模块并演示如何使用它,其方式几乎与使用相同Spring Social Facebook。
不仅仅是Web应用程序,您还可以在Web服务中使用Spring Social ORCID,如the spring social orcid client example project on the rest_web_service branch所示。 Web服务还支持“记住我”功能。
任何Web应用程序都可以通过JavaScript使用基于Spring Social ORCID的Web服务连接到ORCID。我创建了another example project来演示这个,它也使用了“记住我”功能。
Spring Social ORCID项目远非完美,但我认为这不是一个糟糕的开始:-)欢迎您提供帮助,并帮助改进它。
答案 1 :(得分:0)
为了跟进Yuci,我创建了一个Spring和Spring启动集成示例的存储库。有些只需要配置。 ORCID最近发布了OpenID Connect和隐式OAuth功能,您现在也可以使用少量的javascript进行客户端身份验证。
ORCID结束时的更改意味着Spring启动只需要this:
@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);
}
}
还有一个使用JWT的客户端隐式流的示例。此更多ORCID OAuth和OpenID连接示例可以是found on github