【问题标题】:Drupal8 Oaut2 add a grant type "password" to clientDrupal 8 Oauth2 向客户端添加授权类型“密码”
【发布时间】:2019-01-09 06:42:48
【问题描述】:

我从事 Drupal8 项目并创建了 Rest API,一切正常,直到我想在尝试获取令牌时添加 Oauth2我收到了无效的授权类型错误。

这是错误代码:

{
    "error": "invalid_grant",
    "message": "The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.",
    "hint": "Check the configuration to see if the grant is enabled."
}

这是我调用的网址:

http://myserver/oauth/token?grant_type=password&client_id=6db9da8d-b831-4381-b279-381bc5a57e90&scope&username=webmasterrest&password=webmasterrest&client_secret=$S$EamACyfemGWic74kmkwUvphMmr9FL132KC297mI1GEkTKhyBJyAo

我添加了一个客户端,但我无法向该客户端添加授权类型“密码”,请问有什么帮助吗?

【问题讨论】:

    标签: drupal oauth-2.0 drupal-8


    【解决方案1】:

    添加 Oauth 2 身份验证

    使用 Composer 安装模块:composer config repositories.drupal composer https://packages.drupal.org/8 && composer require drupal/simple_oauth:^2。您可以使用任何其他安装方法,只要您安装了 OAuth2 Server composer 包即可。

    生成一对密钥来加密令牌。出于安全原因,将它们存储在文档根目录之外。

    openssl genrsa -out private.key 2048
    openssl rsa -in private.key -pubout > public.key
    

    将密钥的路径保存在:/admin/config/people/simple_oauth。

    转到 REST UI 并在您的资源中启用 oauth2 身份验证。

    通过转到:/admin/config/services/consumer/add 创建一个客户端应用程序。

    通过向 /oauth/token 发出 POST 请求,使用您的凭据创建令牌。请参阅有关您的请求应包含哪些字段的文档

    (未显示)权限设置为仅允许使用经过身份验证的用户通过 REST 查看节点。

    通过 REST 请求一个没有身份验证的节点并观察它失败。

    通过 REST 请求带有标头 Authorization: Bearer {YOUR_TOKEN} 的节点并观察它是否成功。

    来自this


    注意:我使用 drupal/simple_oauth 2.x 版,因为我在 3.x 版中遇到了异常

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2021-04-24
      相关资源
      最近更新 更多