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

时间:2018-03-04 03:56:54

标签: auth0

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

现在,我想使用auth0-js代替锁小部件进行身份验证。我按照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'
});

1 个答案:

答案 0 :(得分: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。只有第一方客户端可以跳过同意对话框,假设他们试图代表用户访问的资源服务器具有“允许跳过用户同意”#34;选项已启用。 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