Jhipster + REST 客户端 + 身份验证

2023-11-22

我需要了解如何验证 REST 客户端(可能是 Paw,可能是 Android 应用程序,使用 AFNetworking 和 jHipster 的 iOs 应用程序,我认为,更一般地说,使用 spring-boot,我不是这方面的专家)。

虽然我能够在登录浏览器时获取令牌,并随后在以下请求中使用此令牌,但我不明白如何首先使用 RESTful 最佳实践进行身份验证。

例如,在 Paw.app 中,我可以通过基本身份验证或 Oauth2,但我不明白如何像在 Web 浏览器上那样简单地获取会话令牌进行身份验证。

同样,在 AFNetworking 中我能够通过基本身份验证,例如

NSString*auth=[NSString stringWithFormat:@"%@:%@", @"admin", @"admin"];
NSString *authValue = [NSString stringWithFormat:@"Basic %@", [auth base64EncodedString]];
[manager.requestSerializer setValue:authValue forHTTPHeaderField:@"Authorization"];

但我很难理解如何使用 jHipster/spring boot 中捆绑的会话安全性进行身份验证。


首先,不要对移动应用程序使用 HTTP 会话身份验证。

另一方面,Oauth2 或 JWT 可以很好地与移动应用程序配合使用。他们背后的基本想法是获得token从 Jhipster 到移动设备,令牌有一个过期时间。届时您可以使用令牌访问 Jhipster 的任何 REST API 来访问数据。

下面我展示了如何在基于 angularjs 的 ionic 应用程序中使用 Jhipster Rest API 的代码片段。我希望它能让您了解您需要做什么。

取消application.yml里面cors的注释jhipster

cors: #By default CORS are not enabled. Uncomment to enable.
        allowed-origins: "*"
        allowed-methods: GET, PUT, POST, DELETE, OPTIONS
        allowed-headers: "*"
        exposed-headers:
        allow-credentials: true
        max-age: 1800

要在 ionic 中使用 Oauth2 身份验证访问 REST API,您必须首先在 ionic 应用程序中获取令牌:

    $http({
    method: "post", 
    url: "http://192.168.0.4:8085/[Your app name]/oauth/token",
    data:  "username=admin&password=admin&grant_type=password&scope=read write&client_secret=my-secret-token-to-change-in-production&client_id=auth2Sconnectapp",
    withCredentials: true,
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
      'Accept': 'application/json',
      'Authorization': 'Basic ' + 'YXV0aDJTY29ubmVjdGFwcDpteS1zZWNyZXQtdG9rZW4tdG8tY2hhbmdlLWluLXByb2R1Y3Rpb24='
      }
  })                
  .success(function(data) {
      alert("success: " + data);
  })
  .error(function(data, status) {
      alert("ERROR: " + data);
  });

Here "YXV0aDJTY29ubmVjdGFwcDpteS1zZWNyZXQtdG9rZW4tdG8tY2hhbmdlLWluLXByb2R1Y3Rpb24=" is equal to (clientId + ":" + clientSecret)--all base64-encoded

上面的 $http 如果成功的话会给你这个包含 token 和过期时间的 JSON

{
  "access_token": "2ce14f67-e91b-411e-89fa-8169e11a1c04",
  "token_type": "bearer",
  "refresh_token": "37baee3c-f4fe-4340-8997-8d7849821d00",
  "expires_in": 525,
  "scope": "read write"
}

如果您想访问任何 API,请注意“access_token”和“token_type”,这是您必须使用的。我们使用 API 发送令牌来访问数据,直到令牌过期,然后我们刷新它或访问新的令牌。

例如

$http({
    method: "get", 
    url: "http://192.168.0.4:8085/auth-2-sconnect/api/countries",
    withCredentials: true,
    headers: {
      'Authorization':' [token_type] + [space] + [access_token] '
      }
  })                
  .success(function(data) {
      alert("success: " + data);
  })
  .error(function(data, status) {
      alert("ERROR: " + data);
  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jhipster + REST 客户端 + 身份验证 的相关文章

  • 配置 Jackson 在 Spring Boot 中省略延迟加载属性

    在纯java配置的spring boot mvc项目中如何配置Jackson以省略延迟加载属性 使用最新版本的 Spring Boot 这要容易得多 com fasterxml jackson databind Module 类型的任何 b
  • 为什么 html 页面没有在 thymeleaf 中显示?

    我在用着spring boot和thymeleaf查看引擎 问题是控制器没有显示正确的 html 页面 并且总是显示Whitelabel Error Page 控制器 package com example controller impor
  • Spring Boot中服务接口类的用途

    我的问题是关于接口类的使用 我对 Spring 还很陌生 所以如果这过于简单 请耐心等待 首先 当您可以在 BoxService 中声明 find all 时 这里拥有 IBoxService 接口有什么意义 其次 在控制器中如何使用IBo
  • 在测试中替换 OAuth2 WebClient

    我有一个小型 Spring Boot 2 2 批次 用于写入 OAuth2 REST API 我已经能够配置WebClient下列的https medium com asce4s oauth2 with spring webclient 7
  • Web API GET 请求中的电子邮件地址

    我正在开发在 ASP NET Web API 中实现的 REST API 我们想要支持的一个场景是执行GET通过电子邮件地址请求一些用户信息 理想情况下 客户应该能够执行以下操作 GET api v1 users email your em
  • Springboot:防止Resttemplate对%进行双重编码

    我们的代码使用Asyncresttemplate如下 String uri http api host com version test address 23 language en US format json getAysncRestT
  • 使用 Spring boot 测试执行集成测试时无法注入自定义过滤器

    我在 spring 控制器中有 POST 方法 并且我正在尝试使用 Test Rest 模板交换在控制器上运行测试方法 控制器 java RequestMapping path rest projects RestController pu
  • FOSUserBundle & REST Api 调用:如何使用自定义 FormType?

    我在我的 Symfony2 网站上使用 FOSUserBundle 现在我正在开发一个 API 以允许通过 REST API 调用进行注册 我已经覆盖了 FOSUserBundle 的 RegistrationController ApiR
  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • POST 请求“访问此资源需要完全身份验证”

    是否有人在尝试使用 POST 请求 oauth token 进行身份验证时遇到错误 访问此资源需要完全身份验证 卷曲命令 curl localhost 85 oauth token d grant type password d clien
  • 来自客户端的超时 Web 服务调用

    我正在使用 RestEasy 客户端调用网络服务 一项要求是 如果调用运行时间超过 5 秒 则中止 超时调用 我如何使用 RestEasy 客户端实现这一目标 我只看到服务器端超时 即如果在一定时间内未完成请求 Rest Easy 网络服务
  • 允许 iframe 跨域链接到目标父框架

    我有 2 个域 域 1 上的一个页面使用 iframe 加载域 2 中的内容 如何允许来自domain2 iframe 内 的链接在domain1 的完整父框架中打开 我一直在关注IE和w3c的新沙箱属性 http www w3 org T
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr
  • 如何以编程方式下载公共 Google Drive 文件?

    我有一个后端服务器 必须下载 Google 云端硬盘上的文件 该文件已由所有者向公众共享 我们的客户通过电子邮件向我们发送链接 我们从电子邮件中获取链接 不涉及 UI 该程序需要获取或下载文件并离线处理它 谷歌示例似乎是使用 UI 运行的
  • PUT/DELETE 与 REST 是自动幂等的吗?

    我正在学习 REST 和 PUT DELETE 我读到这两者 以及 GET 都是幂等的 这意味着多个请求使服务器进入相同的状态 重复的 PUT DELETE 请求是否会离开 Web 浏览器 当使用XMLHttpRequest 换句话说 服务
  • 使用 Swagger UI 进行基本身份验证

    我正在尝试通过 Swagger UI 开发一个基于 spring boot 的 REST API 服务以及 API 文档 我想通过 swagger UI 启用基本身份验证 以便用户只有在使用 swagger UI 上的 授权 按钮进行身份验
  • 什么是 RESTful Web 服务

    我尝试从维基百科等阅读有关 RESTful Web 服务的信息 但我必须承认我不明白 有一部电影中 丹泽尔 华盛顿说 像我 5 岁孩子一样向我解释一下 有人可以为我做有关 RESTful 服务的事情吗 如果你知道电影的名字 那就加分了 当我
  • 有什么方法可以处理 ASP.Net MVC 中的 Put 和 Delete 动词吗?

    只是想知道是否有人知道真正宁静的 Put delete 实现 asp net mvc Preview 5 最好 查看 mvccontrib 项目 http www mvccontrib org http www mvccontrib org
  • Laravel 5 Eloquent 在多个级别上将关系附加到 JSON

    因此 在模型中包含关系非常容易 例如 class User extends Model protected with roles class Role extends Model protected with permissions 当有对
  • 为什么更喜欢 REST 而不是 SOAP?

    如果我需要一个 Web 服务来来回传递一个复杂的对象 我是否有理由更喜欢 SOAP 而不是 REST 以下是可能的 SOAP 消息的示例

随机推荐

  • Github GraphQL - 获取存储库的提交列表

    我正在使用 GraphQL 使用 Github 的 GraphQL v4 API 从存储库列表中获取一些数据 我想要一份清单最新提交来自存储库 无论提交的分支 标签 引用是什么 现在 我正在执行以下操作来从某个存储库获取提交列表 on Re
  • 如何使浮动操作按钮背景渐变?

    FAB的代码
  • 以编程方式获取 GPU 利用率

    是否有获取 GPU 当前负载的标准方法 我正在寻找类似于显示 CPU 的任务管理器的东西 GPU Z 等实用程序显示了这个值 但我不确定它是如何得到这个值的 我目前对 AMD 显卡特别感兴趣 任何指示都会有帮助 如果没有干净的 API 方法
  • Flask-sqlalchemy 查询日期时间间隔

    我用flask sqlalchemy定义了一个表 显示如下 class Notes db Model id db Column db Integer primary key True notes db Column db Text null
  • 具有多态类型的 STUArray

    我想使用以下方法实现一个算法ST单子和STUArrays 我希望它能够与两者一起使用Float and Double data 我将演示一个更简单的示例问题 计算记忆值scanl 0 我知道这可以解决 无需STUArray 仅用作示例 LA
  • Bootstrap 轮播全屏

    我试图让引导程序轮播中的图像显示全屏 但一直无法弄清楚 我已经为此工作了一段时间 但完全陷入困境 现在我只有一张图片 但一旦它起作用我会添加更多
  • 解释C++中语句和表达式的区别

    我试图彻底理解 a 之间的区别陈述 and an 表达但即使读完这个答案我还是觉得很困惑表达与陈述看看以下内容 std cout lt lt Hello there 我可以说这是一个声明 因为它以分号但我也可以说这是一个表达式 因为我有一个
  • Hadoop HADOOP_CLASSPATH 问题

    这个问题并不是指在整个集群中分发 jar 供工作人员使用它们 它指的是在客户端计算机上指定一些附加库 更具体地说 我尝试运行以下命令来检索 SequenceFile 的内容 path to hadoop script fs text pat
  • 对于单个布局 XML 文件来说,多少个 ViewStub 太多了?

    我在 XML 文件中定义了布局 base layout xml 其中可能包含20 ViewStub除了 3 5 个其他视图 例如ImageView and a LinearLayout含3 5个ImageButton views 我应该关心
  • 跨多列排列的唯一约束

    给定 Postgres 数据库中的以下三列 第一 第二 第三 如何创建一个约束以使排列是唯一的 E g If foo bar shiz 存在于数据库中 bar shiz foo 将被排除为非唯一 您可以使用 hstore 创建唯一索引 CR
  • 如何让 Jenkins 从代码覆盖率中排除整个文件夹?

    我试图弄清楚如何从 jacoco 由 Jenkins 启动 生成的代码覆盖率报告中排除文件夹列表 似乎可以排除类 但不能排除文件夹 这对我来说很烦人 因为我已经开始使用一个相当大的库用于在线支付系统 运行这些单元测试意味着不断在该平台上创建
  • lua中分割字符串并存储在数组中

    我需要分割一个字符串并将其存储在一个数组中 这里我使用了 string gmatch 方法 它精确地分割字符 但我的问题是如何存储在数组中 这是我的脚本 我的示例字符串格式 touchedSpriteName Sprite 10 rose
  • 找出真实的文件类型

    我正在开发一个处理文件上传的 ASP 网页 仅允许上传某些类型的文件 例如 XLS XML CSV TXT PDF PPT 等 我必须确定文件是否确实具有与扩展名显示的类型相同的类型 换句话说 如果一个木马程序被重命名为无害 pdf并上传后
  • 将参数传递给 threading.Thread

    我在 Windows 上使用 Python 3 我在用threading Thread动态运行一个函数 我可以带或不带参数调用它 我正在设置一个事物列表 其中第一项是定义路径的字符串 其他参数将在列表中稍后列出 所以 args 可能等于 C
  • SQL Server - 如何查找我的表上的依赖表?

    Using SQLServer 我有一张桌子user id name email 还有一些其他的表 大约200多个表 其中一些使用user id作为外键cascade delete 所以 我想找出 哪些表使用这个外键 user id 我正在
  • 有没有办法减慢网络爬虫的速度,以便它能够获取代码?

    我写了一个宏去WU获取历史数据 大部分情况下 它是有效的 但是 我认为宏运行速度太快 无法从网站获取数据 https www wunderground com history daily us tx el paso KELP date 20
  • 谷歌翻译获取当前语言

    在网上找到任何可以帮助我的东西之后 我正在使用多语言网站的当前功能 function googleTranslateElementInit new google translate TranslateElement pageLanguage
  • 当另一个单元格更改时,在单元格中输入当前日期

    我有一个 Google 电子表格 用于跟踪客户端请求的应用程序配置信息的状态 例如 文本转到按钮上 我的顶部有一个 状态 列 下面的行中有一个 范围列表 数据验证单元格 使用的范围有 与客户 与我 已完成 我的右侧还有一列 用于手动添加上次
  • 如何将 PySpark 数据帧的每个非字符串列与浮点常量相除或相乘?

    我的输入数据框如下所示 from pyspark sql import SparkSession spark SparkSession builder appName Basics getOrCreate df spark createDa
  • Jhipster + REST 客户端 + 身份验证

    我需要了解如何验证 REST 客户端 可能是 Paw 可能是 Android 应用程序 使用 AFNetworking 和 jHipster 的 iOs 应用程序 我认为 更一般地说 使用 spring boot 我不是这方面的专家 虽然我