标签: auth0

使用auth0-lock的Auth0仅在使用调试器时进行身份验证,以便慢慢逐步执行代码

正如标题所说,我正在尝试使用auth0-lockAngular 2 SPA和ASP.NET Core API.我无法验证自己的测试.我也webpack用来打包应用程序并将所有其他引用删除到只有裸auth应用程序.

我按照他们的教程:https://auth0.com/docs/quickstart/spa/angular2

问题是,当我点击构造函数时,如果我慢慢地通过调试器逐步执行库代码,它将只进行身份验证.

constructor() {
      debugger
    // Add callback for lock `authenticated` event
      this.lock.on("authenticated", (authResult) => {
        debugger
      localStorage.setItem('id_token', authResult.idToken);
    });
  }
Run Code Online (Sandbox Code Playgroud)

如果我删除调试器并让它以正常速度运行,它将永远不会进行身份验证; 该auth0-lock上来了,我可以登录,然后它会重新加载,但我不会被记录也不会出现在本地存储任何东西.

更新: 所以我认为我找到了这个问题的原因.使用Angular 2的最新组件路由器; 如果我评论路由,auth立即工作,但把它放回去我必须使用调试器来减慢它.否则,它不会auth.有没有什么办法解决这一问题?

我在进行身份验证时遇到了另一个问题,查询我的API我得到了回复,401 Unauthorized即使Auth0我说我已获得授权.我可以看到我的令牌localStorage以及来自另一个角度2教程的authHttp模块的使用.angular2-jwtAuth0

我的后端(asp.net Core)有一个方法[Authorise].我按照这里的设置https://auth0.com/docs/quickstart/backend/aspnet-core-webapi 了解如何开始,除了我遇到上述问题.

更新:事实证明这个问题是由于我在教程中跳过关于更改SignatureAlgorithm使用的部分,RS256我已经改变了它以使用RS256方法并且在这方面工作得很好但现在仍然存在问题当我在角度2上启用路由时不会认证这里是该项目的Github Repo:https://github.com/Toxicable/Templates

authentication auth0 asp.net-core angular

7
推荐指数
1
解决办法
549
查看次数

Auth0.com,它究竟是如何运作的?

我想问一下,当用户自己登录时,谁生成JTW令牌?如果用户通过facebook登录,是否意味着facebook ganerates令牌?Auth0.com 扮演什么角色?谢谢

jwt auth0

7
推荐指数
1
解决办法
1580
查看次数

如何使用JS API将配置选项传递给Auth0托管页面?

我正在使用auth0上的托管登录页面和auth0-js模块来授权我的用户.

文档讨论配置对象,页面本身清楚地显示了这样一个被反序列化的对象.

但是,文档并没有远程讨论如何将此对象传递给页面.实际上,文档表明一种不能远程工作的方法(没有设置配置参数)

我是否需要自己序列化对象并设置config属性或是否有其他方法?

auth0

7
推荐指数
1
解决办法
1635
查看次数

带有Auth0的XCTestCase:如何关闭安全警报“ XXXX”要使用“ auth0.com”登录

因此,最近Apple引入了此提示:“ XXXX”要使用“ auth0.com”登录,其中“ XXXX”是ios应用程序名称。

在此处输入图片说明

当用户使用Auth0时,单击“使用Google登录”或“使用Facebook登录”时,将出现此警报/对话框。很好,但是在运行IOS UI测试时,使用通常的关闭系统对话框的方法时,该对话框不会消失:

func doUserLogin(_ app: XCUIApplication) {

    app.staticTexts["notLoggedInActivelabel"].tap()
    // this will bring up oauth0 login window in ios

    // setup a handler to dismiss the system alert
    let handler = self.addUIInterruptionMonitor (withDescription: "allow oauth") { (alert) -> Bool in
        // code should come here where the dialog is presented, 
        // but it never does ....   
        alert.buttons["Continue"].tap() // click Continue Button 
        return true
    }

    // click the login with GOOGLE button. This brings up dialog “XXXX” Wants …
Run Code Online (Sandbox Code Playgroud)

automated-tests ios auth0 xctestcase auth0-lock

7
推荐指数
1
解决办法
576
查看次数

强制执行SameSite策略的Cookie在iOS 12中被阻止,用于涉及跨源请求的SSO流

摘要:iOS/OS 12中的第三方登录中断!

我们有一个适用于多个网站的通用登录.这在Windows,macOS和iOS上的Firefox,Chrome和Safari中运行良好.但是对于iOS 12和macOS 12,似乎cookie不再从auth0登录窗口工作到我们的登录API.

它不仅在Safari中停止工作,而且在iOS 12上也在Chrome和Firefox中停止工作(它仍适用于Mac OS 12上的Chrome).我怀疑这与智能跟踪预防2.0有关,但我很难找到许多技术细节.

我们的登录流程如下:

  1. 用户单击login,将window.location.href设置为通用(不同)登录域上的登录URL.
  2. 这称为ChallengeAsync,它将用户发送到auth0域进行登录.
  3. 然后将用户发送回登录域,但此时缺少来自auth0的cookie和控制器中设置的会话cookie.

我在启动时使用以下内容:

    services.AddAuthentication(options => {
                    options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                    options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                })
                .AddCookie(options =>
                {
                    options.Cookie.Path = "/";
                    options.SlidingExpiration = false;
                })
                .AddOpenIdConnect("Auth0", options => {
                // Set the authority to your Auth0 domain
                options.Authority = $"https://{Configuration["Auth0:Domain"]}";

                // Configure the Auth0 Client ID and Client Secret
                options.ClientId = Configuration["Auth0:ClientId"];
                options.ClientSecret = Configuration["Auth0:ClientSecret"];

                // Set response type to code
                options.ResponseType = "code";

                // Configure the scope …
Run Code Online (Sandbox Code Playgroud)

c# .net-core auth0 ios12

7
推荐指数
1
解决办法
1722
查看次数

通过“passport-jwt”使用 Auth0 进行 NestJS 身份验证

我正在尝试创建一个 NestJS 项目,该项目使用 Auth0 进行身份验证,并带有passport-jwt库(与 结合使用@nestjs/passport),但我无法使其正常工作。我不确定我哪里出错了。我一遍又一遍地阅读文档,但仍然找不到问题。

代码

/src/auth/jwt.strategy.ts

import { Injectable, UnauthorizedException } from '@nestjs/common';
import { PassportStrategy } from '@nestjs/passport';
import { ExtractJwt, Strategy } from 'passport-jwt';
import { passportJwtSecret } from 'jwks-rsa';
import { xor } from 'lodash';
import { JwtPayload } from './interfaces/jwt-payload.interface';

@Injectable()
export class JwtStrategy extends PassportStrategy(Strategy) {
  constructor() {
    super({
      secretOrKeyProvider: passportJwtSecret({
        cache: true,
        rateLimit: true,
        jwksRequestsPerMinute: 5,
        jwksUri: `https://${process.env.AUTH0_DOMAIN}/.well-known/jwks.json`,
      }),

      jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
      audience: 'http://localhost:3000',
      issuer: `https://${process.env.AUTH0_DOMAIN}/`,
    });
  }

  validate(payload: …
Run Code Online (Sandbox Code Playgroud)

jwt typescript passport.js auth0 nestjs

7
推荐指数
1
解决办法
3755
查看次数

在打字稿前端项目中使用 jwt-decode

描述 我试图在打字稿项目中使用 jwt-decode,即 Stencil 项目 & 它抛出以下错误:

此表达式不可调用。Type '{ default: (token: string, options?: Options) => TTokenDto; }' 没有调用签名。

import * as jwt_decode from 'jwt-decode';
.
.
.
let token = "........";
let decoded = jwt_decode(token);
Run Code Online (Sandbox Code Playgroud)

再生产

  • 在任何打字稿项目中安装 jwt-decode npm install --save @types/jwt-decode npm install --save jwt-decode 在你的代码中导入它并使用 import * as jwt_decode from 'jwt-decode'; . . . 让令牌 = "........"; 让解码 = jwt_decode(token);
  • 构建项目
  • 使用的这个库的版本:^2.2.0 平台版本或
  • 使用的框架(如果适用):模板 - ^1.3.3 ,打字稿 - 3.7.2

jwt typescript auth0

7
推荐指数
1
解决办法
2744
查看次数

AWS Cognito以Auth0作为SAML SSO的中间层,如何跳过重新登录

我\xe2\x80\x99m 使用AWS Cognito as User pool (for login) <> Auth0 as SAML-IDP (idp-initiated flow) (as Cognito does not support SAML IDP) <> and connecting to 3rd party SP.

\n

我有一个具有 AWS Cognito 登录机制的 Web 应用程序,并且我\xe2\x80\x99m 尝试将登录的客户重定向到第三方 URL(=SP,也需要登录,SAML)。

\n

我已设置 Auth0 来执行 SAML SSO,因为 Cognito 不支持它,并添加了 OpenID Connect 进行身份验证,以将现有用户与 Auth0 同步(AWS Cognito - 参见下图),这似乎运行良好(用户从我的设备同步)用户池与 Auth0/用户管理/用户)。

\n

当 i\xe2\x80\x99m 重定向登录用户时,我将它们重定向到 Auth0 身份提供商登录 URL(即dev-APP.us.auth0.com/samlp/SOME_APP?connection=AWSCognito:)

\n

i\xe2\x80\x99m 面临的问题是,第一次 - 用户需要再次登录(认知),尽管他已经登录了(见下图)。

\n

我试图跟踪重定向到 Auth0 提供商登录 URL 后发出的请求,看来 cognito 上的 /authorize URL …

saml amazon-web-services amazon-cognito auth0

7
推荐指数
0
解决办法
460
查看次数

如何将 Auth0 提供程序与 v6.4 中新的 createBrowsereRouter 一起使用?

我们正在迁移到 v6.4 并createRoutesFromElements按照文档的建议将我们的路由迁移到新createBrowserRouter路由器。

我们的设置看起来像这样

const router = createBrowserRouter(
  createRoutesFromElements(--> our routes go here <--)
);

root.render(
  <React.StrictMode>
    <ChakraProvider theme={theme}>
      <RouterProvider router={router} />
    </ChakraProvider>
  </React.StrictMode>
);
Run Code Online (Sandbox Code Playgroud)

Auth0 文档说 Auth0 提供程序应该嵌套在提供程序下。新路由器如何做到这一点?

我们尝试将身份验证提供程序包装在路由周围,createRoutesFromElements但不起作用。也尝试这样做,但我们收到错误。

<RouterProvider router={router} >
    <Auth0Provider />
</RouterProvider>
Run Code Online (Sandbox Code Playgroud)

有人可以帮我了解 Auth0 提供程序的放置位置吗?谢谢

reactjs auth0 react-router-dom

7
推荐指数
1
解决办法
3688
查看次数

如何使React Router v6加载器仅在Auth0之后发送请求?

我正在尝试利用 React Router 加载器。实际上,除了一种情况之外,它的效果非常棒。

我用于Auth0 React SDK授权。我传递getAccessTokenSilentlyaxios interceptor所有 API 调用,标头中都有不记名令牌。在某些路由上,我以这种方式使用 React Router v6.4 中的加载器:

路由器

              {
                path: PATHS.rawMedia,
                element: <RawMediasPage />,
                loader: rawMediasLoader,
              }
Run Code Online (Sandbox Code Playgroud)

在我重新加载页面之前它工作得非常好。页面重新加载加载器在 Auth0 之前发送请求。在这种情况下,加载程序发送没有承载令牌的请求,并且从后端返回错误。

如何解决这个问题?高技能的人暗示我如何解决这个问题,但不幸的是我没那么好。据我了解,我需要在路由中进行<RouterProvider router={router} />App.tsx深入的处理,以便 Auth0 首先针对令牌触发......但我不明白如何实现它。

AuthProvider.tsx

export const AuthProvider = (): JSX.Element | null => {
  const navigate = useNavigate();
  if (!(domain && clientId)) {
    return null;
  }

  const onRedirectCallback = (appState: any) => {
    navigate(appState?.returnTo || window.location.pathname);
  };

  return (
    <Auth0Provider
      domain={domain} …
Run Code Online (Sandbox Code Playgroud)

reactjs auth0 react-router-dom

7
推荐指数
1
解决办法
1834
查看次数