{"id":18309,"library":"ember-simple-auth-auth0","title":"ember-simple-auth-auth0","description":"Ember addon integrating Auth0 authentication (Lock.js and Universal Login) with Ember Simple Auth. Version 5.0.0-beta.0 provides ESM-only support for Ember 3.x+. Key differentiators include dead-simple setup with automatic dependency management, support for embedded Lock widget and Universal Login, passwordless authentication, impersonation, silent auth, and a migration guide from v4.x to v5.x. Auth0 community-maintained.","status":"active","version":"5.0.0-beta.0","language":"javascript","source_language":"en","source_url":"https://github.com/auth0-community/ember-simple-auth-auth0","tags":["javascript","ember-addon","ember-simple-auth","lock.js","auth0","authentication","jwt","authorization"],"install":[{"cmd":"npm install ember-simple-auth-auth0","lang":"bash","label":"npm"},{"cmd":"yarn add ember-simple-auth-auth0","lang":"bash","label":"yarn"},{"cmd":"pnpm add ember-simple-auth-auth0","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core authentication framework for Ember apps","package":"ember-simple-auth","optional":false},{"reason":"Auth0's JavaScript client library for authentication","package":"auth0-js","optional":false},{"reason":"Auth0's Lock widget for embedded login UI","package":"auth0-lock","optional":true}],"imports":[{"note":"Only available since v5. Must import from the specific path. Default export not available from package root.","wrong":"import Auth0LockAuthenticator from 'ember-simple-auth-auth0'","symbol":"Auth0LockAuthenticator","correct":"import Auth0LockAuthenticator from 'ember-simple-auth-auth0/authenticators/lock'"},{"note":"Separate authenticator for passwordless auth. Not included in default export.","wrong":null,"symbol":"Auth0PasswordlessAuthenticator","correct":"import Auth0PasswordlessAuthenticator from 'ember-simple-auth-auth0/authenticators/passwordless'"},{"note":"Base authenticator for universal login. Used when not using Lock widget.","wrong":null,"symbol":"Auth0Authenticator","correct":"import Auth0Authenticator from 'ember-simple-auth-auth0/authenticators/auth0'"}],"quickstart":{"code":"// config/environment.js\nENV['ember-simple-auth-auth0'] = {\n  clientID: process.env.AUTH0_CLIENT_ID ?? 'your-client-id',\n  domain: process.env.AUTH0_DOMAIN ?? 'your-domain.auth0.com',\n  logoutReturnToURL: 'http://localhost:4200'\n};\n\n// app/routes/application.js\nimport Route from '@ember/routing/route';\nimport { inject as service } from '@ember/service';\n\nexport default class ApplicationRoute extends Route {\n  @service session;\n\n  beforeModel() {\n    return this.session.setup();\n  }\n\n  @action\n  login() {\n    this.session.authenticate('authenticator:lock');\n  }\n\n  @action\n  logout() {\n    this.session.invalidate();\n  }\n}\n\n// app/controllers/application.js (partial)\nimport Controller from '@ember/controller';\nimport { inject as service } from '@ember/service';\n\nexport default class ApplicationController extends Controller {\n  @service session;\n}\n\n// Handlebars template\n{{#if this.session.isAuthenticated}}\n  <p>Welcome, {{this.session.data.authenticated.profile.name}}!</p>\n  <button {{on 'click' this.logout}}>Logout</button>\n{{else}}\n  <button {{on 'click' this.login}}>Login</button>\n{{/if}}","lang":"javascript","description":"Shows basic configuration and login/logout flow with Lock authenticator."},"warnings":[{"fix":"Import authenticators from 'ember-simple-auth-auth0/authenticators/lock' or 'ember-simple-auth-auth0/authenticators/auth0' instead.","message":"Deprecated import from 'ember-simple-auth-auth0' (default export) removed in v5. Must use specific module paths.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Use 'ember-simple-auth/authorizers/data-adapter' or implement custom authorizer.","message":"JWT authorizer and DataAdapterMixin removed in v5. Replace with Ember Simple Auth's built-in authorizer.","severity":"breaking","affected_versions":">=5.0.0"},{"fix":"Install and import 'auth0-lock' in your ember-cli-build.js or use a content delivery network.","message":"Lock widget must be included manually in app if not using auto-import. Addon does not inject Lock script automatically.","severity":"gotcha","affected_versions":">=5.0.0"},{"fix":"Use 'Auth0PasswordlessAuthenticator' and configure via config.","message":"Passwordless authentication API changed in v4. Old 'magicLink' option replaced with 'passwordless' method.","severity":"deprecated","affected_versions":">=4.0.0 <5.0.0"},{"fix":"Ensure exactly 'ember-simple-auth-auth0' (double hyphen) in ENV.","message":"Environment variable configuration uses 'ember-simple-auth-auth0' key. Typo in key will silently fail.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Change import to `import Auth0LockAuthenticator from 'ember-simple-auth-auth0/authenticators/lock'`","cause":"Mistakenly trying to import default export from package root.","error":"Could not find module `ember-simple-auth-auth0` imported from `my-app/app/authenticators/lock`"},{"fix":"Add `this.session.setup()` in the `beforeModel` hook of your application route.","cause":"Missing `beforeModel` call to `this.session.setup()` in application route.","error":"Uncaught TypeError: Cannot read properties of undefined (reading 'setup')"},{"fix":"Check `config/environment.js` that `ENV['ember-simple-auth-auth0'].clientID` and `ENV['ember-simple-auth-auth0'].domain` are set correctly.","cause":"Client ID or domain missing or incorrect in config.","error":"auth0-js: Invalid clientID or domain"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}