当前位置: 首页 > news >正文

太原住房与城乡建设厅网站网络程序员

太原住房与城乡建设厅网站,网络程序员,查看邮箱注册过的网站,塑胶制品东莞网站建设将Google和GitHub OAuth登录添加到Java应用程序的指南 我们添加到Takipi的最新功能之一是3rd party登录。 如果您像我一样懒惰#xff0c;那么我想您也希望跳过填写表单和输入新密码的操作 。 只要有权限#xff0c;许多人都希望使用第三方登录#xff0c;只要他们要求的权… 将Google和GitHub OAuth登录添加到Java应用程序的指南 我们添加到Takipi的最新功能之一是3rd party登录。 如果您像我一样懒惰那么我想您也希望跳过填写表单和输入新密码的操作 。 只要有权限许多人都希望使用第三方登录只要他们要求的权限是非侵入性的-没有人真正希望在Facebook墙上显示随机帖子因此这种访问方式仅包括用户的基本信息例如姓名和电子邮件地址。 在本文中您将初步了解我们如何在Takipi中实现此功能如何在应用程序中使用3rd party登录以及我们获得的一些见解如果您决定集成将为您节省宝贵的时间使用您自己的应用程序。 新帖如何实现Java OAuth 2.0以使用GitHub和Google登录http://t.co/20Hn59dCtf pic.twitter.com/3tNNwPKjET — Takipitakipid 2015年5月14日 在我们自己的小宇宙中事实证明我并不孤单我们的许多用户也有同样的感觉。 由于我们是开发人员工具初创公司因此使用GitHub和Google的第3方登录非常合理。 除了为用户提供便利之外使用第三方服务还可以增强其安全性。 由于Google和GitHub使用双重身份验证2FA因此您的应用程序可以“免费”享受这种安全级别。 在我们的案例中我们已经启用了2FA所以我想这使我们……3FA55357;56859; 带有第3个聚会登录按钮的新首页的样机预览 要查看其在实际中的工作方式您可以查看我们内部用于测试的页面 。 它完全可以正常运行但是该更新尚未在该站点上发布。 您在这里有一个难得的机会成为第一个使用它的人:) 因此提醒我OAuth 2.0又如何发展 OAuth登录流程如下用户转到您的站点单击“使用任何方式登录”按钮然后重定向到权限页面。 权限页面来自Whatever™当他们批准您要求的权限时Whatever™向他们发送一个令牌令牌将由他的浏览器发送到您的应用程序的后端。 拥有令牌后将其发送回Whatever™进行验证并假设它已通过验证–您可以访问被授予权限的数据。 Google OAuth2.0库 为了在我们的网站上实现第三方登录我们使用了Google APIs Client Java for Java。 在GitHub顶级Java项目使用的前100个库中 还包含Jackson2ProtoBuf和所有其他方便的实用程序。 对于我们来说这是一个非常简单的选择因为我们已经将该库用于其他目的而且老实说谷歌库只是出现在……谷歌上的第一个结果。 准备好您的锡箔帽子 。 使用Google实施登录 这是旅途中的轻松部分 Google方面的文档清晰明确。 由于它是他们自己的库因此他们还抽象了过程的一部分并在后台进行处理从而使其更易于实现。 第一步是在Google开发人员控制台上创建一个项目您可以在其中注册您的应用程序并自定义权限页面。 Google的权限页面–为Takipi定制 现在回到Java。 从本质上讲该过程可以归纳为几个简单的步骤毫不奇怪。 首先我们构建并执行一个获取GoogleTokenResponse的请求以便我们可以验证从用户那里获得的令牌。 然后我们使用此响应来创建一个GoogleCredential 让我们对其调用getAccessToken并以JSON格式返回用户的信息 JsonFactory jsonFactory new JacksonFactory(); HttpTransport httpTransport new NetHttpTransport();GoogleTokenResponse tokenResponse new GoogleAuthorizationCodeTokenRequest(httpTransport, jsonFactory,/* Client ID and Secret */,code, postmessage).execute();GoogleCredential credential new GoogleCredential.Builder().setJsonFactory(jsonFactory).setTransport(httpTransport).setClientSecrets(/* Client ID and Secret */).build().setFromTokenResponse(tokenResponse);Oauth2 oauth2 new Oauth2.Builder(httpTransport, jsonFactory, credential).setApplicationName(YourAppName).build(); Tokeninfo tokenInfo oauth2.tokeninfo().setAccessToken(credential.getAccessToken()).execute();return oauth2.userinfo().get().execute(); 繁荣。 而已。 最好的建议是仅遵循官方文档。 在GitHub的一端实现有些棘手。 使用GitHub实施登录 现在我们意识到Google帮助我们在OAuth方面走了一些弯路并在GoogleTokenResponse和GoogleCredential中使用了抽象。 使用GitHub我们必须更接近原始协议。 与Google类似在GitHub的开发人员应用程序屏幕上注册我们的应用程序时我们可以自定义权限屏幕 。 GitHub的权限页面–为Takipi定制 当我们到达实际的代码时有3个主要问题使我们放慢了速度而在文档中找不到。 解决方法如下 1.建立自己的请求流程 在Google的情况下只有5行代码变成了19行因此我们可以生成GitHub tokenResponse。 以下是您自己建立请求的方法 JsonFactory jsonFactory new JacksonFactory(); HttpTransport httpTransport new NetHttpTransport();AuthorizationCodeFlow flow new AuthorizationCodeFlow.Builder(BearerToken.authorizationHeaderAccessMethod(),httpTransport, jsonFactory,new GenericUrl(https://github.com/login/oauth/access_token),new ClientParametersAuthentication(/* Client ID and Secret */),/* Client ID */https://github.com/login/oauth/authorize).build();TokenResponse tokenResponse flow.newTokenRequest(code).setScopes(Collections.singletonList(user:email)).setRequestInitializer(new HttpRequestInitializer() {Overridepublic void initialize(HttpRequest request) throws IOException {request.getHeaders().setAccept(application/json);}}).execute();由于某些原因字符串是默认值 注意到setAccept的更早的初始化方法吗 这有点令人惊讶。 事实证明您需要明确要求GitHub以JSON格式返回响应否则您将以字符串格式获取响应。 如果我们提前知道的话可以节省一些时间例如 但值得庆幸的是我们找到了一些胶带和回形针来处理事情 3.处理用于GitHub登录的用户电子邮件 现在一个GitHub用户可能有多个电子邮件地址然后您必须选择用于自己目的的电子邮件地址。 因此我们创建了一个getBestEmail方法该方法可以对电子邮件数组进行排序注意它应该扩展ArrayList才能起作用。 在对电子邮件数组进行排序之后我们选择了可以找到的最佳选项 public class GithubEmails extends ArrayListGithubEmail {public GithubEmail getBestEmail() {if (isEmpty()) {return null;}Collections.sort(this, GithubEmail.bestEmailComparator);return get(0);} } 那么最好的选择是什么 我们从GitHub的响应中获得的此电子邮件数组中的每个字段都有一封电子邮件一个经过验证的字段和一个主字段。 这是我们实现的排序比较器 public static final Comparator? super GithubEmail bestEmailComparator new ComparatorGithubEmail() {Overridepublic int compare(GithubEmail o1, GithubEmail o2) {if (o1.verified ! o2.verified) {return (o1.verified ? -1 : 1);}if (o1.primary ! o2.primary) {return (o1.primary ? -1 : 1);}return o1.email.compareTo(o2.email);} }; 因此基本上您可以看到我们更喜欢验证和主要电子邮件。 结论 我们希望本文有助于您全神贯注如何通过Google和GitHub的登录方法来访问OAuth和Java。 虽然这是我们决定实现的方法但是您可以使用其他方法和库来实现类似的结果。 我们很高兴听到您采用哪种方法更喜欢哪种库并回答有关此实现的任何问题。 如果您对我们的决定方式有任何意见或建议请在下面的评论部分中告知我。 而且如果您遇到麻烦请分享您遇到的困难我们将很乐于帮助和分享更多代码。 翻译自: https://www.javacodegeeks.com/2015/05/tutorial-how-to-implement-java-oauth-2-0-to-sign-in-with-github-and-google.html
http://www.pierceye.com/news/403539/

相关文章:

  • 海门市建设局网站科技与应用
  • 北京做网站s免费做app网站有哪些
  • 免费制作网页的网站网络营销师报名官网
  • 长沙网站制作好公司网络服务模型
  • 网站开发的时间流程微信平台可以做微网站吗
  • 镇江网站seo天猫网店代运营
  • 吴江城乡住房和城乡建设局网站怎么给别人做网站优化
  • 名师工作室网站建设 意义网站图片上浮动文字
  • 做co的网站商城网站不备案
  • 黄山建设网站公司电话网站下载链接怎么做
  • 开发企业网站多少钱电视剧排行榜百度搜索风云榜
  • 什么网站做软文装修公司报价如何计算
  • 网站开发免费视频播放器应用公园app免费制作
  • 道路建设去什么网站能看到做内贸注册什么网站
  • 代理东莞网站制作公司wordpress前台用户中心代码
  • 做拼团网站下载wap浏览器
  • 网站建设合同文百科阿里云加WordPress建站
  • 服装购物网站排名ppt制作神器
  • 长沙营销策划公司排名如何优化企业网站
  • 北京制卡厂家做卡公司北京制卡网站_北京制卡_北京 去114网wordpress 关闭注册
  • 网站建设技术优势广州天河区医院
  • python和php网站开发中国十大公司排行榜
  • 网站栅格如何建设一个外卖订餐平台网站
  • 浙江省网站建设报价群晖wordpress不成功
  • 音乐网站制作策划书网站建设公司的服务公司
  • 南昌定制网站开发多少钱手机在线网页制作
  • 无锡网站推广$做下拉去118cr高端网站建设苏州
  • 该网站未在腾讯云备案网页界面图
  • cms开源建站系统河北省建设厅管网站
  • 网站优化排名易下拉技术做官网的步骤