问题标签 [api-authorization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2313 浏览

c# - 使用路由参数的 DotNet Core 自定义授权属性

我用谷歌搜索了这个并没有找到任何东西,所以我想知道那些使用 DotNet Core 时间比我自己更长的人。

我现在到了 DotNet 核心。我目前正在创建一个应用程序只是为了练习。我注意到在我的大多数 API 操作中,我正在根据声明 NameIdentifier(即登录的用户 ID)验证传入的 UserId。

我正在这样做:

但现在想想,它变得有点过于重复了。有没有办法使用属性代替?

就像是:

然后创建我的授权属性:

这样,我将在一个地方为我的所有操作检查在“api/user/{userId}”中传递的用户 ID。

或者还有另一种方法可以让我的代码看起来更好,并且复制和粘贴更少?

先感谢您。

0 投票
0 回答
243 浏览

c# - ASP.Net Web API:基于令牌的授权不起作用

我正在我的 Web API 项目中实现基于令牌的身份验证。以下是我用来验证令牌的代码。尽管我的令牌是有效的,但我收到的响应是“此请求的授权已被拒绝”,我不知道它来自哪里!

我在这里想念什么?

0 投票
1 回答
84 浏览

oauth-2.0 - 列出 UMA 2.0 中的授权资源

我正在我的 webapp 中查看 UMA 2.0 以获得细粒度授权。但是 UMA 2.0 要求客户端尝试访问托管在资源服务器上的资源,返回 HTTP 401 错误以及在向授权服务请求授权令牌时使用的票证。

但这要求客户端知道它想要访问哪些资源或资源服务器上确实存在哪些资源。

在我的场景中,我有类似于 GitHub 上的一组存储库的东西,用户可以被授权访问其中的一个或多个。当用户登录时,我想向他展示他可以访问的存储库。

是否有任何标准方法可以查询资源服务器/授权服务器以获取用户有权访问的资源列表?UMA 2.0 如何假设客户端会发现它有权访问的现有资源?

0 投票
3 回答
207 浏览

authentication - JMeter:auth2.0认证流程(B2C架构)

脚步:

  1. 访问网站 - 它被重定向到包含动态参数的 URL,例如状态、随机数和 CLIENT-REQUEST-ID。

因此,在 JMeter 中,我无法获取这些值,因为它们直接来自 HTTP 请求。任何想法,如何获取它?

  1. 单击使用凭据登录时,正在发生身份验证过程,该过程正在生成令牌 ID。然后在下一个请求中,发生重定向并实现相同类型的 URL(如步骤 1 中)。再次传递相同的参数。并通过此请求生成访问令牌。

我无法获取这些参数(随机数、状态、客户端请求 ID)。我们可以做些什么吗?

0 投票
1 回答
48 浏览

laravel - 公共 Laravel API 的身份验证

我正在制作一个公共 API 以允许第三方网站与我的应用程序交互,我想知道管理身份验证的最佳方法是什么。我目前正在研究使用 Laravel Passport,但我对工作流程应该如何工作感到有些困惑。

我应该为我的用户创建客户端然后请求他们自己的令牌,还是应该只有一个客户端用于请求令牌并将令牌分发给用户。

我很想使用 Laravel Passport,因为它集成了 OAuth2,这是一个众所周知的身份验证标准,但是从阅读 Passport 文档来看,它似乎并不是为了创建一个公共 API 作为所有客户端创建“方法”而编写的是通过运行工匠命令,而不是通过控制器方法。

更新

我目前正在寻找的是让用户通过编写一个控制器来创建一个 OAuth 客户端,该控制器使用php artisan passport:client命令中包含的相同类型的代码,但位于控制器中,因此可以从前端网页完成。然后,这将为用户提供一个客户端 ID 和秘密,然后他们可以使用它来通过请求访问令牌来遵循标准 OAuth 流程。我不确定这是多么正确,或者这对于一个非常基本的 API 来说是否有点过于深入,但这就是我的想法

0 投票
0 回答
152 浏览

c# - 带有登录授权提示的 ASP.NET Core API

我们在 C#/ASPNet Core 3.1 API 的一个端点上使用 Windows 身份验证。它的配置如下:

启动.ConfigureServices():

启动。配置():

并且我们需要身份验证的端点在控制器的 Post 方法上具有 [Authorize] 属性:

在 Chrome 中,系统会提示我输入凭据,然后允许在后续请求中使用端点(即使我取消了提示)。

如何防止提示?

0 投票
2 回答
3398 浏览

laravel - 使用 laravel Sanctum 和 api 令牌身份验证获取用户时出现 401(未经授权)

我观看了本教程以使用 laravel sanctum 进行 api 令牌身份验证。登录时,我检索了添加到 axios 标头的 Bearer 令牌。但是当尝试通过 /api/user 获取用户时,我得到一个 401。请注意,我不使用 CSRF 令牌,因为我使用的是Sanctum Api 令牌身份验证而不是 SPA 身份验证。

我有一个用于所有 axios 请求的 api 文件,看起来像

一些认证功能

登录控制器

在 routes/api.php 中路由

我在我的用户模型中使用 HasApiTokens,在 config/sanctum.php 中有 'prefix' => 'api',在 config/cors.php 中有 'paths' => ['api/*'] 并且有 'api' => [ 'driver' => 'sanctum',...] 在我的 config/auth.php

我看了该教程两次并复制了所有内容(除了我使用的是 Quasar 框架),搜索了整个谷歌和 stackoverflow ......我不明白,请帮忙!我确实收到了不记名令牌,所以应用程序认为我已登录,但无法获取我的用户数据。在上面提到的教程的第 1 部分中,也做了同样的事情,但是使用 SPA 身份验证 (csrf) 并且这个确实有效!

更新

似乎它适用于http://127.0.0.1:8000/上的 php artisan serve ,但不适用于http://some-domain.local或公共域上的MAMP

为什么...

0 投票
1 回答
145 浏览

angular - Angular - 无法读取 catchError 中的 www-authenticate 标头

我正在尝试读取 401 响应的 www-authenticate 标头,以便我可以触发令牌刷新并将请求再次发送到 API。但是,我似乎无法从错误响应中读取标题。下面是角度代码。尝试刷新访问令牌的其他任何人都面临这个问题吗?

任何帮助都会很有用。谢谢。

0 投票
1 回答
39 浏览

asp.net-core - 授权取决于用户组织 .net core

我有 Organization、UserType、AspNetUser、Department、Stock 和 SIM 表作为以下架构

当用户调用端点 api/sims/1 并且用户的用户类型不是超级管理员并且用户的组织与我想要返回未经授权的 sim 组织不同时,最佳实践是什么在 asp.net core web api 3.1 中这样做?

0 投票
1 回答
1918 浏览

api - 使用 Python 的 Spotify API 授权代码流

我正在尝试使用 Spotify 的 API 执行授权代码流,以最终将歌曲添加到播放列表中。我正在从头开始构建它,而不是使用任何库,例如 Spotipy。

我能够成功访问授权端点,但令牌端点存在一些问题。这是我到目前为止的代码:

当我运行我的脚本时,我在终端中得到这个输出: