我正在开发一个桌面项目,它需要使用OAuth2.0对Google进行Google授权。使用的语言是java。
当前,要授权项目,我必须使用java.swt.Desktop.getDesktop().browse(url)打开浏览器,单击“接受”按钮,在重定向页面中复制授权代码并将其粘贴到我的应用程序中。用户必须手动关闭网页。挺麻烦的。
是否有一种更好、更方便用户的方法来实现这个授权过程?我想要实现的最终程序是,应用程序打开授权页面,用户单击“接受”,页面自动关闭,软件被授权。在其他申请中,我也见过这类程序。只是我不知道怎么做到这点。
提前谢谢。
发布于 2013-10-25 01:59:40
您需要提供一个callbackURL。我建议使用像文士这样的java库来完成这个任务--有一个很好的入门页面和大量的示例。
编辑1
下面是设置回调url的示例
String apiKey = "your_app_id";
String apiSecret = "your_api_secret";
OAuthService service = new ServiceBuilder()
.provider(FacebookApi.class)
.apiKey(apiKey)
.apiSecret(apiSecret)
.callback("myApp://oauthcallback")
.build();您需要在桌面应用程序中打开一个嵌入式浏览器,并按照OAuthService提供的方式转到oauth。一旦用户批准了应用程序,嵌入式浏览器将被重定向到回调URI。您需要检测到这一点,然后提取回调中包含的oauth信息。
我从来没有通过桌面应用程序(它总是在servlet/jsp - web应用程序中)来完成这个任务。但是,如果您搜索如何在windows中的URI上检测重定向,希望您能找到一些示例。
https://stackoverflow.com/questions/19572612
复制相似问题