Laravel 5 - 有没有办法使用内置身份验证但禁用注册?

时间:2015-03-13 15:22:19

标签: laravel laravel-5

我正在构建管理后端,因此需要隐藏公共用户注册。看来,如果您想使用内置的Illuminate身份验证,则需要添加

use AuthenticatesAndRegistersUsers到你的控制器定义。该特征定义为here

如果您想使用内置的身份验证处理程序,似乎无法禁用注册......有人会误解我吗?

4 个答案:

答案 0 :(得分:2)

我正在使用Laravel 5.2+,我发现如果您删除CASE WHEN MAX(PCO.PARENT_OPTION_ID) IS NOT NULL THEN MAX(PCO.SUGGESTION_TYPE) ELSE MAX(O.SUGGESTION_TYPE) END AS SUGGESTION_TYPE 并仅使用Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers也可以。

虽然Illuminate\Foundation\Auth\AuthenticatesUsers仍可访问,但会引发致命错误

答案 1 :(得分:1)

This page谈论覆盖auth控制器。它值得一读,在基本级别,你似乎可以添加以下行到app \ Http \ Controllers \ Auth \ AuthController.php:

public function getRegister() {
    return redirect('/');
}

public function postRegister() {
    return redirect('/');
}

因此,如果用户访问注册网址,则会将其重定向到您选择的位置。

答案 2 :(得分:0)

您可以拥有自己的注册形式。 Laravel唯一能做的就是在用户表上进行身份验证很容易,因为他们创建了模型,为用户构建了db模式,并提供了帮助方法来对该模型/表进行身份验证。

您不必让视图点击注册页面......但是如果您想使用内置的身份验证,您仍然需要使用(或设置)模型和数据库连接的驱动程序。 / p>

您可以从链接到注册视图的路径中删除该视图和/或控制器方法,并创建您自己的(或手动为数据库设置种子)。

但是,不,你不能放弃使用Eloquent和用户模型并期望使用内置的身份验证。内置身份验证要求您在/config/auth.php中指定设置。您可以指定不同的模型(用户除外),也可以指定其他表,但不能完全放弃配置。

Laravel非常可定制,所以你可以实现你想要做的......加上为什么不使用Eloquent,它很好。

答案 3 :(得分:0)

基于@ shoo的答案,使用Laravel 5.2

将以下行添加到app \ Http \ Controllers \ Auth \ AuthController.php:

@implementation MyManager
+ (id)sharedManager {
    static MyManager *sharedMyManager = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedMyManager = [[self alloc] init];
    });
    return sharedMyManager;
}

// This is the function I want to stub in my test case
- (NSInteger) getId{
  return [self askBackendToReturn];
}
...
@end