当前位置: 首页 > 知识库问答 >
问题:

Laravel身份验证用户添加自定义数据

颜志业
2023-03-14

我们目前正在与社交名媛Laravel的谷歌登录应用程序。我们有一个获得许可号ex的Auth用户。264.我们做了一个函数,它返回一个包含所有二进制数的数组,这个权限号被取消了。

由于每次加载页面时调用此函数可能会有点繁重,因此我们考虑在创建Auth::user()时添加此函数一次。我们曾考虑在模型中添加一个自定义构造函数,但我们无法使其工作。

function __construct($attributes = array()) {
  parent::__construct($attributes);
  $this->permissionsArray = PermissionHelper::permissionConverter($this->permissions);
}

但是我们不能让它工作,$this在调用这个函数时没有值。

太长,读不下去了在创建Auth user之后,我想直接调用permissionConverter函数并将数据保存给用户,以便我们可以更频繁地使用它。有什么建议吗?

编辑:我今天检查了所有答案,其中一个答案成功了,但我假设Laravel让经过身份验证的用户参加了会话或其他什么。我发现它没有这样做,而且每次请求它都会从数据库中获取所有数据。不幸的是,我们不能按要求做。因此,我只需重构脚本并使其尽可能高效(尽管对于经验不足的程序员来说,它的可读性会降低一点)。

谢谢你的帮助: D

共有1个答案

廖永长
2023-03-14

也许你可以用这个解决方案?https://stackoverflow.com/a/25949698/7065748

用户雄辩的模型a引导方法上使用

class User extends BaseModel {
  public static function boot() {
    static::creating(function($model) {
      $model->permissionsArray = PermissionHelper::permissionConverter($model->permissions);
    });
    // do the same for update (updating) if necessary
  }
}

你就不能用这种方法吗?

如果新用户:

$user = new User(); // or User:create(['...']) directly
$user->name = 'toto';
// and all other data

$user = Auth::user();

然后

$user->permissionsArray = PermissionHelper::permissionConverter($user->permissions);
$user->save();  
 类似资料:
  • 我正在创建一个laravel应用程序与自定义多重身份验证。我正在跟随这篇文章进行多重身份验证。https://pusher.com/tutorials/multiple-authentication-guards-laravel 我已经创建了登录和注册控制器定义的警卫和提供者,一切正常,我能够注册用户并登录他们。我写了一页(http://127.0.0.1:8000/admin)只有当管理员登录时

  • 于是我在这里看到:https://firebase . Google . com/docs/auth/web/account-linking # link-auth-provider-credentials-to-a-user-account现在可以在Firebase中链接用户账号了。我还看到Firebase提供了匿名认证的功能,它为一个用户创建一个用户会话,不需要任何凭证。 在我们的应用程序中,

  • 我已经安装了OpenLDAP服务器。 如何在LDAP服务器中添加用户(条目)?以及如何打开该服务器的命令窗口,以便在其上运行ldap命令: :我的要求是:在我的应用程序中,我想对Openldap服务器中添加的用户进行身份验证,但我只能在windows os上安装Openldap服务器,但如何添加用户我无法获得方法。在Windows7操作系统上安装openLDAP whic时添加用户的方法是什么?这

  • 在过去的几周里,我一直在努力掌握KeyClope,这样我就可以实现一种使用遗留提供商(基于Oracle,带有会话表和各种奇怪的东西)对用户进行身份验证的方法。我们计划在不久的将来解决这个问题,但目前我们必须解决这个问题,所以我们的想法是在前线使用KeyClope——利用它提供的主要好处,比如SSO——在需要身份验证的应用程序中省略传统的身份验证提供程序。 我读了一些关于构建自定义OIDC身份提供程

  • 在Laravel 5中,如果用户的基本身份验证失败,则返回的默认消息是“无效凭据”错误字符串。出现这种情况时,我试图返回一个自定义JSON错误。 我可以在vendor/laravel/framework/src/illumb/Auth/SessionGuard.php中编辑返回的响应,但是我还没有看到可以在vendor目录之外的何处更改此消息的行为。有办法吗? 看起来有一些方法可以通过Larave