网站搜索

javascript - 如何将 jwt 身份验证与 ACL 混合使用

我已经能够使用 JWT 策略实现 Passport,并且运行良好。我的 JWT 保护的路由如下所示...

app.get('/thingThatRequiresLogin/:id', passport.authenticate('jwt', { session: false }), thingThatRequiresLogin.findById);

现在我需要将某些内容的访问限制为仅属于某些角色的已登录用户。我希望我能像这样表达:

app.get('/thingThatRequiresLogin/:id', MAGIC, thingThatRequiresLogin.find

阅读更多 →

javascript - 为什么 CURL 的 PUT 在上传有效负载之前就认证失败,而 XHR 的 PUT 则是在之后才失败?

我正在使用一个基于令牌认证的 REST API,其中一些用户有上传文件的权限,而有些没有。

问题是当某些没有权限上传文件的用户尝试上传(比如一个1GB的文件)时,我只有在整个1GB文件上传完成后才收到错误响应。

如果我从 Chrome 开发者工具中将请求复制为 curl 并通过终端发送,它会立即失败。

我使用具有上传权限的用户的令牌测试了curl命令,结果如预期一样。

那么,curl 和 XHR 有什么不同?

Curl 是同步的,而 XHR 默认不是同步的。我尝试过让 XHR 同步,但它仍然必须在得到响应之前上传整个文件。

function upload(file, url) { var xhr = new XMLHttpRequest(); xhr.upload.key = xhr.key = file.key xhr.upload.addEventListener("progress", updateProgress); xhr.addEventListen

阅读更多 →

javascript - 如何在浏览器(Chrome 扩展)中获取 Google Cloud Translation API 的认证令牌

我正在尝试制作一个使用 Google Cloud 翻译 API 的 Chrome 扩展。我在 Google 翻译和开发 Chrome 扩展的许多不同文档页面上都遵循了很多说明,但我仍然无法弄清楚如何在浏览器中实际使用该 API。

我走得最远的是按照快速入门指南的部分步骤操作:创建服务账户,获取服务账户密钥文件(下载为 .json 文件),安装并初始化 Google SDK,将 GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为服务账户 J

阅读更多 →

javascript - 升级到 stripe.js 版本 3 后,我如何确认 3D Secure 2 身份验证是否有效

我已经更新了一个网站,现在它使用最新的 stripe-php(6.39.0),并且现在加载 stripe.js 版本 3。我已经对代码进行了所有必要的更改,因此我的信用卡字段现在使用 Stripe Elements 显示。测试交易可以正常进行,我已经更新了在线网站,真实支付也在被接受。

我进行此更新的原因是因为Stripe通知我,需要升级网站,以便其Stripe集成能够与强客户认证(SCA)兼容,而这是欧盟在2019年9月要求的。

Stripe 有不同的信用卡测试号码,你可以用

阅读更多 →

javascript - 如何使用 Keycloak 和 PKCE 流实现 React SPA 身份验证?

这是我第一次使用 Keycloak。我在本地机器上准备了一个 Keycloak 实例,在其中我可以创建领域、客户端等。

我找到了 React + Keycloak 的使用示例,但没有一个使用 PKCE 流程。

我不知道如何配置 Keycloak 和 React。我只知道客户端应用必须能够生成代码验证器和代码挑战。

我正在寻找一个使用 React 和 Keycloak 实现授权的简单示例,该示例应遵循带 PKCE 流程的 OAuth 2.0 授权码授权,或者提供关于在 React 端和 Keycloak 端分别应做什么以实现 OAuth 2.0 的建议。

我想做的事:

  1. 设置 Keycloak 实例(已准备好)
  2. 在 Keycloak 中注册公共客户端(就绪)
  3. 在网页中实现一个简单的登录场景(该场景遵循带 PKCE 流程的 OAuth 2.0 授权码授权)

答案#1

(旧版

阅读更多 →

使用 Facebook 身份验证登录时的 Typescript 编译器错误

使用 Facebook 认证登录时的 Typescript 编译器错误。

Facebook 身份验证工作正常。只是 TypeScript 编译器不喜欢这个响应。

TypeScript 编译器错误是:"属性 'facebook' 在类型 FirebaseAuthData 上不存在"。

这是我的代码:

public loginWithFacebook():void{

阅读更多 →

javascript - 使用 TypeScript 在 IIS 上使用 Windows 身份验证调用 Web 服务

我尝试从一个 Angular2 应用向托管在企业网络 IIS 服务器上的 Web 服务发起 GET 请求。我花了大部分时间阅读关于 CORS 和预检请求的资料。我已经让服务器对预检请求返回 200 响应,但当客户端进行第二次实际请求资源的调用时,我收到 401 未经授权。

我这样提出请求:

let headers = new Headers({ 'withCredentials': true }); let options = new RequestOptions({ headers: headers }); return this.http.get(url, options) .map(this.extractData) .catch(this.handleError);

预检请求/响应

以下请求/响应

我不确定是否已经在 IIS 服务器上正确配置了安全性,但当我尝试使

阅读更多 →

angular - Angular2(最终版本)和 Firebase 身份验证不持久

我正在制作一个登录页面,我能够登录,一切工作正常,但每当我刷新网页时,我必须再次登录网站并输入我的凭据。登录无法保持持久性。下面是我的代码:

auth.guard.ts

import { Injectable } from "@angular/core"; import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from "@angular/router"; import { AuthService } from

阅读更多 →

typescript - 在成功的 ServiceStack 认证后 RefreshToken 未定义

  • ServiceStack 版本 5.0
  • ServiceStack Typescript 客户端 版本 0.0.40

以下代码调用了我的认证微服务,并成功验证了用户身份并返回了他们的承载令牌:

var request = new Authenticate(); request.provider = "credentials"; request.userName = userName; request.password = password; request.useTokenCookie = true; this.client.post(request) .then(res => { if (res.bearerToken != null) { console.log('auth success', res); console.log('auth refresh token', res.refreshToken); resolve(true); } r

阅读更多 →

typescript - 使用 typeORM 的 Nest.js 身份验证

我已经创建了一个可连接数据库的工作服务器,并且有一个可以正常工作的简单 get 请求。我按照 https://docs.nestjs.com/techniques/authentication 这个指南操作的。

在运行服务器并尝试从受保护的路由执行 get 请求时,我收到 Cannot read property 'challenge' of undefined。user.controller.ts

import { Controller, Get, UseGuards } from '@nestjs/common'; import { UserService } from './user.service'; import { User } from './user.entity'; import { AuthGuard, PassportModule } from '@nestjs/passport'; @Controller()

阅读更多 →