gpt4 book ai didi

angularjs - Auth0 和 Angular 错误 - 无法初始化 Auth0Angular。 Auth0Lock 或 Auth0 必须可用

转载 作者:行者123 更新时间:2023-12-02 22:33:10 24 4
gpt4 key购买 nike

我正在尝试使用 Auth0 进行用户身份验证,但在将其添加到我的 Angular 项目中时遇到问题。我正在将 Angular1 与 Webpack 一起使用,但似乎我没有正确加载 Auth0。这是我的 app.js 文件的内容;

import 'jquery';
import 'bootstrap/dist/css/bootstrap.min.css';
import angular from 'angular';
import uiRouter from 'angular-ui-router';
import auth0 from 'auth0-angular';
import lock from 'auth0-lock';
import cookies from 'angular-cookies';
import storage from 'angular-storage';
import jwt from 'angular-jwt';
import AppComponent from './app.component.js';
import Common from './common/common';
import Components from './components/components';
import './styles.scss';

angular.module('myApp', [
'auth0',
'ui.router',
'angular-storage',
'angular-jwt',
'app.common',
'app.components',
])
.directive('app', AppComponent)
.constant('API', 'http://localhost:8000')
.config(['$urlRouterProvider', 'authProvider', function ($urlRouterProvider, authProvider) {

authProvider.init({
domain: '.eu.auth0.com',
clientID: '',
loginState: 'login'
});

authProvider.on('loginSuccess', function ($location, profilePromise, idToken, store) {
profilePromise.then(function (profile) {
store.set('profile', profile);
store.set('token', idToken);
});
$location.path('/');
});

authProvider.on('loginFailure', function () {
$location.path('/login');
});

$urlRouterProvider.otherwise('/login');



}]).run(['$rootScope', 'auth', 'store', 'jwtHelper', '$urlRouterProvider', function ($rootScope, auth, store, jwtHelper, $urlRouterProvider) {
auth.hookEvents();
}]);

我相信我正在导入并加载 auth0,所以我不明白为什么会发生这种情况。我认为这是一个小语法错误..

最佳答案

我也遇到了同样的问题。不过,我使用 require 而不是 import。

无论如何,auth0-Angular 模块都会在全局窗口对象上搜索 auth0 或 auth0lock。通过使用 require 包含 auth0-lock (我猜在你的情况下也使用 import ), auth0lock 模块不会绑定(bind)到全局窗口对象。

解决方案是将 auth0-lock 作为参数传递给 auth0-angular。这样,auth0-Angular 就会使用它,并且不会查看窗口对象。

了解如何将 auth0lock 作为第二个参数传递给 authProvider.init() 函数。

var auth0lock = require('auth0-lock');

var angular = require('angular');

require('angular-cookies');
require('angular-route');
require('auth0-angular');
require('angular-storage');
require('angular-jwt');

angular.module('myapp', ['auth0', 'angular-storage', 'angular-jwt', 'ngRoute'])
.config(function(authProvider) {
authProvider.init({
domain: 'myauth0domain',
clientID: 'myclientid'
}, auth0lock);
})
.run(function(auth) {
auth.hookEvents();
});

关于angularjs - Auth0 和 Angular 错误 - 无法初始化 Auth0Angular。 Auth0Lock 或 Auth0 必须可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37624269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com