我正在开发一个使用 auth0 进行身份验证的 Angular2 应用程序。我使用 auth0 锁定小部件来验证用户。
现在,我想使用auth0-js而不是锁定小部件进行身份验证。我按照本指南添加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'
});
Run Code Online (Sandbox Code Playgroud)
在Auth0 Dashboard 中,在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默认情况下是这样。只有第一方客户端可以跳过同意对话框,假设他们试图代表用户访问的资源服务器启用了“允许跳过用户同意”选项。Auth0 仪表板没有为此提供标志,但如果您使用 Auth0 Management API v2Get Clients端点,那么您将看到为您的客户端列出的标志(布尔值)值,例如。
"is_first_party": true
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅https://auth0.com/docs/api/management/v2#!/Clients/get_clients。
最后,请注意以下几点:https : //auth0.com/docs/api-auth/user-consent#skiping-consent-for-first-party-clients - 特别注意不能在本地主机上跳过同意。根据文档(上面的链接),在开发过程中,您可以通过修改 /etc/hosts 文件(Windows 和基于 Unix 的操作系统支持)来添加如下条目来解决此问题:
127.0.0.1 myapp.dev
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |