java - 如果未登录,则服务器端重定向

标签 java google-app-engine oauth google-cloud-endpoints google-api-js-client

我使用 Cloud Endpoints 并执行客户端 oauth 来访问我的后端。这工作正常,除了这意味着我只能在整个页面和附加脚本加载并且 oauth 请求完成后检查点击我的应用程序 URL 的人是否是用户。

我想启用服务器端身份验证,这样我就可以为我的登陆页面和我的应用程序使用相同的 URL,如果此人是用户,则将其重定向到应用程序,如果她不是,则重定向到登陆页面'

问题是 User Tutorial使用 UserService用于身份验证,而 Cloud Endpoints 使用 OAuth Service .我不知道如何在我的 redirect filter 中使用 OAuth因为上面链接的 OAuth 部分的所有链接都适用于 OAuth 1 和 are deprecated .

我如何在我的重定向过滤器中检查访问者是否是用户,并同时获得一个 token ,如果她是用户,我可以使用该 token 随后调用我的端点?

我正在使用 Google Api JS client调用云端点,因此解决方案将与其最佳集成,使用 gapi.auth.setToken(token) 检索 token 并绕过整个 gapi.auth.authorize(params , 回调) 跳舞。

最佳答案

您可以为登录流程提供自定义 servlet 实现,您将通过提供新流程获取 oauth-token,然后验证该访问 token 以授予对 protected 资源的授权。

Google 提供了很好的引用文档here你可以使用 this示例代码 repo 供引用。

关于java - 如果未登录,则服务器端重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29360123/

相关文章:

javascript - OAuth弹窗跨域安全React.js

javascript - OAuth.io 连接失败

java - 如何在java代码中使用.dll文件?

对 Sharepoint 2010 oData 的 Java HTTP 调用失败

python - 在生产谷歌应用引擎上运行单元测试

javascript - 在手机上拍照并上传到谷歌云服务

java - 无法获取隔离的 JDBC 连接 : org. hibernate.exception.JDBCConnectionException

java - 在 JSP 提交按钮中使用 Servlet 变量

java - 在 Java 应用引擎开发期间使用 Google Cloud SQL(而不是本地 MySQL 实例)

authentication - Google Authenticator - 缺少 otpauth 协议(protocol)参数