【发布时间】:2020-07-09 04:27:24
【问题描述】:
我正在使用 Spring Boot 和 JSF 创建一个 Web 应用程序,我的目的是通过我的应用程序在 google 课堂中创建课程。
我按照谷歌的例子通过Oauth认证自己:https://url.miapp.io/oS2mx
实现示例中的 ClassroomQuickstart 类,但是当您在我的 Web 应用程序中使用 getService() 方法时,它会在 Tomcat 嵌入式控制台(Spring Boot)中向我发送一个 Google URL,以便我自己从浏览器进行身份验证,我可以继续我的代码流程。
换句话说,身份验证在交互模式下工作,等待我从浏览器进行身份验证,以便应用程序可以继续执行流程,我不知道我应该做什么,这样我就不必在此验证自己方式,我不知道它是按原样实现它的代码还是与谷歌开发者控制台中的配置有关。
【问题讨论】:
-
如果你想避免用户必须同意应用程序,你应该使用一个服务帐户,它遵循一个不需要用户交互的2-legged OAuth flow。如果你想让它代表用户访问数据,你必须grant it domain-wide authority。您认为这适合您的情况吗?
-
谢谢,我只想创建课程并向学生发送邀请,每个人都将在我的应用程序之外从他们的教室.google.com 帐户登录,实际上我的应用程序只会创建课程和关联学生和老师是我所需要的,你认为我应该遵循什么方式来实现这一目标?谢谢
-
在这种情况下,您应该使用服务帐户来模拟自己。能否请您提供与您当前正在遵循的 OAuth 流程相关的代码以及相应的 API 请求?
-
是的,这就是代码,我已经在spring boot + jsf app中实现了(代替main方法,有一个点击监听JSF)developers.google.com/classroom/quickstart/java
-
嗨!我发布了一个关于这个的答案。您能否确认这是否解决了您的问题?
标签: spring-boot oauth-2.0 google-classroom