Auth0在登录时要求同意访问tenent

问题描述 投票:3回答:1

我正在开发一个Angular2应用程序,它使用auth0进行身份验证。我使用auth0 lock小部件来验证用户。

现在,我想使用auth0-js而不是lock小部件进行身份验证。我按照this指南将auth0-js添加到应用程序。

添加auth-js后,当新用户尝试登录应用程序时,Auth0会向用户显示以下同意屏幕。

enter image description here

我希望用户能够直接访问我的应用程序,而无需接受同意屏幕。在此对话框中询问的同意问题可能会让用户感到困惑,因为它提到了租户。

当我搜索解决方案时,在各个地方提到的解决方案是让客户端成为first party客户端。但是,我在管理控制台中找不到任何地方让客户端成为first party客户端。

如何禁用此同意屏幕?

以下是我在应用程序中使用的auth-js配置。

auth0 = new auth0.WebAuth({
    clientID: 'my_client_id',
    domain: 'my_domain.auth0.com',
    responseType: 'token id_token',
    audience: 'https://my_domain.auth0.com/userinfo',
    redirectUri: window.location.origin + '/auth_loading',
    scope: 'openid'
});
auth0
1个回答
3
投票

在Auth0仪表板中,在APIs -> Auth0 Management API -> Settings (tab)

enter image description here

如果您使用特定的audience作为资源API,您已在仪表板中定义了自己,那么对于该特定API,有一个类似的Allow Skipping User Consent切换。用那个。 audience指定访问令牌的目标API。如果您不想调用特定的API,请将其设置为https://my_domain.auth0.com/userinfo

回覆。关于First Party的问题。如果您在Auth0仪表板中创建了客户端,则默认情况下为Firsty Party。只有第一方客户端可以跳过同意对话框,假设他们尝试代表用户访问的资源服务器启用了“允许跳过用户同意”选项。 Auth0仪表板不提供此标志,但如果您使用Auth0 Management API v2 Get Clients端点,那么您将看到为您的客户端列出的标志(布尔值),例如。

"is_first_party": true

有关详细信息,请参阅https://auth0.com/docs/api/management/v2#!/Clients/get_clients

最后,请注意以下内容:https://auth0.com/docs/api-auth/user-consent#skipping-consent-for-first-party-clients - 特别注意不能在localhost上跳过同意。根据文档(上面的链接),在开发过程中,您可以通过修改/ etc / hosts文件(Windows和基于Unix的操作系统支持)来解决此问题,以添加如下条目:

127.0.0.1       myapp.dev
© www.soinside.com 2019 - 2024. All rights reserved.