我正在开发一个使用auth0进行身份验证的Angular2应用。我使用auth0 lock小部件来验证用户。
现在,我想使用auth0-js
代替锁小部件进行身份验证。我按照this指南将auth0-js
添加到应用中。
添加auth-js
后,当新用户尝试登录该应用时,Auth0会向用户显示以下同意屏幕。
我希望用户能够直接访问我的应用,而无需接受同意屏幕。在此对话框中询问的同意问题可能会让用户感到困惑,因为它提到了租户。
当我搜索解决方案时,各个地方提到的解决方案是让客户端成为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'
});
答案 0 :(得分:3)
在 Auth0信息中心中的APIs -> Auth0 Management API -> Settings (tab)
如果您使用特定的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