gpt4 book ai didi

angularjs - 如何获取经过身份验证的用户信息并在所有 Controller 和服务中使用?

转载 作者:行者123 更新时间:2023-12-04 04:44:17 24 4
gpt4 key购买 nike

我正在使用 angularFireAuth,我想检索登录用户的信息并使用
应用程序初始时的所有 Controller 或服务。

目前,我在每个 Controller 中都使用了它,但我遇到了一些问题。

$scope.$on("angularFireAuth:login", function(evt, user){ 
console.log(user);
});

如果不是完整页面加载,则回调将不会调用,或者在应用初始时返回 null。

我需要一些关于如何返回经过身份验证的用户信息的提示,以便我可以在应用程序初始时以及在所有 Controller 和服务中使用。

例子

在 Controller 或服务中时
  • $scope.auth.user.id将返回用户 ID
  • $scope.auth.user.name将返回用户名
  • 最佳答案

    我将从 userService 开始为了这:

    angular.module('EventBaseApp').service('userService', function userService() {
    return {
    isLogged: false,
    username: null
    }

    });

    并写一个 LoginCtrl Controller :
    angular.module('EventBaseApp')
    .controller('LoginCtrl', function ($scope, userService, angularFireAuth) {
    var url = "https://example.firebaseio.com";
    angularFireAuth.initialize(url, {scope: $scope, name: "user"});

    $scope.login = function() {
    angularFireAuth.login("github");

    };
    $scope.logout = function() {
    angularFireAuth.logout();
    };

    $scope.$on("angularFireAuth:login", function(evt, user) {
    userService.username = $scope.user;
    userService.isLogged = true;
    });

    $scope.$on("angularFireAuth:logout", function(evt) {
    userService.isLogged = false;
    userService.username = null;
    });
    });

    注入(inject) userService任何你想要用户的地方。

    我目前正在开发的应用程序使用这个 - https://github.com/manojlds/EventBase/blob/master/app/scripts/controllers/login.js

    基于此处提出的想法 - http://blog.brunoscopelliti.com/deal-with-users-authentication-in-an-angularjs-web-app

    关于angularjs - 如何获取经过身份验证的用户信息并在所有 Controller 和服务中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18437120/

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