使用@cuba-platform/front-generator构建的React项目,访问restapi时401无权限,请问如何配置?

HI,请问如何配置才能正常调用?不考虑匿名登录cuba.rest.anonymousEnabled = true,需要前端React项目请求头加入cuba.rest.client.id与cuba.rest.client.secret吗?

感谢

1 个赞

先通过 oauth/token 接口获取 token,然后在其他的请求头中加上 Authorization:Bearer <token>,下面是一个例子:
image

HI,bryanyin, oauth/token 接口本身就401了,跨域OPTIONS预检通过,主请求401: image

是不是某个配置没有放行oauth/token 接口呢?

看看需要的参数都带了没有?
https://doc.cuba-platform.com/restapi-7.2/#rest_api_v2_ex_get_token

image

使用postman模拟也是401

是否有配置能使用 REST API 的角色?参考下这个帖子:

感谢,应该是这里的问题,我们正式环境是7.1的,应该不需要配置这个吧。帖子里项目是用的github的示例项目

7.1 是不需要的。这个安全范围是 7.2 引入的。你这里 401 返回的错误内容是什么?

7.2的这个是返回的

{
"error": "unauthorized",
"error_description": "Bad credentials"
}

这是用户名密码不对呀~

你试一下在原来的cuba.rest.client.secret的值前加上{noop} 。
比如:
cuba.rest.client.id=admin
cuba.rest.client.secret={noop}admin

Reference:
https://doc.cuba-platform.com/restapi-7.2/?_ga=2.43238885.110531150.1592377065-580985842.1587427511#cuba.rest.client.secret

密码没有输错= =,就是 admin/admin,默认的

我刚才试了一下,下面的做法是是OK的。

  1. 在web module的web-app.properties文件里面后面加上:
    cuba.rest.client.id=admin
    cuba.rest.client.secret={noop}admin

  2. 重启。

  3. admin/admin作为用户名和密码调用Rest API。

1 个赞

楼上说地对,也可以参考这里:

好的,感谢几位