正如标题所说,我正在尝试使用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
我想问一下,当用户自己登录时,谁生成JTW令牌?如果用户通过facebook登录,是否意味着facebook ganerates令牌?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) 摘要: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有关,但我很难找到许多技术细节.
我们的登录流程如下:
我在启动时使用以下内容:
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) 我正在尝试创建一个 NestJS 项目,该项目使用 Auth0 进行身份验证,并带有passport-jwt库(与 结合使用@nestjs/passport),但我无法使其正常工作。我不确定我哪里出错了。我一遍又一遍地阅读文档,但仍然找不到问题。
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-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)
再生产
我\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.
我有一个具有 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:)
i\xe2\x80\x99m 面临的问题是,第一次 - 用户需要再次登录(认知),尽管他已经登录了(见下图)。
\n我试图跟踪重定向到 Auth0 提供商登录 URL 后发出的请求,看来 cognito 上的 /authorize URL …
我们正在迁移到 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 提供程序的放置位置吗?谢谢
我正在尝试利用 React Router 加载器。实际上,除了一种情况之外,它的效果非常棒。
我用于Auth0 React SDK授权。我传递getAccessTokenSilently给axios 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) auth0 ×10
jwt ×3
reactjs ×2
typescript ×2
.net-core ×1
angular ×1
asp.net-core ×1
auth0-lock ×1
c# ×1
ios ×1
ios12 ×1
nestjs ×1
passport.js ×1
saml ×1
xctestcase ×1