【问题标题】:laravel 5.2 - create password for userlaravel 5.2 - 为用户创建密码
【发布时间】:2016-08-30 08:40:32
【问题描述】:

我想实现一个后端用户管理,但是我如何为用户设置一个密码?

我的控制器:

public function store(Request $request)
{
    $this->validate($request, ['email' => 'required', 'name' => 'required', 'password' => 'required', 'surname' => 'required', ]);


    $user = new User($request->all());
    $user->password=bcrypt($request);
    $user->save();


    return redirect('dash/users');
}

查看

        <div class="form-group {{ $errors->has('password') ? 'has-error' : ''}}">
            {!! Form::label('password', trans('users.password'), ['class' => 'col-sm-3 control-label']) !!}
            <div class="col-sm-6">
                {!! Form::text('password', null, ['class' => 'form-control', 'required' => 'required']) !!}
                {!! $errors->first('password', '<p class="help-block">:message</p>') !!}
            </div>
        </div>

现在已修复,该功能正常工作,我的新用户存储在数据库中,但是当我尝试使用他们登录时,登录表单说我“没有找到任何记录” 为什么?

【问题讨论】:

  • 现在好了,改一下:$user->password->bcrypt($request);

标签: laravel hash passwords


【解决方案1】:

您需要将密码文本传递给 bcrypt 而不是整个 $request

$user->password=bcrypt('yourpasswordtext');

【讨论】:

  • 谢谢你!数据存储在我的数据库中,但是当我尝试登录时不起作用,“找不到记录”为什么?我的观点可能吗?
【解决方案2】:
<?php

namespace App\Http\Controllers\Dash;

use App\Http\Requests;
use App\Http\Controllers\Controller;

use Auth;
use App\User;

use App\Report;
use App\Category;
use Illuminate\Http\Request;
use Carbon\Carbon;
use Session;

class UsersController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return void
     */
    public function index()
    {
        $users = User::paginate(15);

        return view('dash.users.index', compact('users'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return void
     */
    public function create()
    {
        return view('dash.users.create');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @return void
     */

    public function store(Request $request)
    {
        $this->validate($request, ['email' => 'required', 'name' => 'required', 'password' => 'required', 'surname' => 'required', ]);


        $user = new User($request->all());
        $user->password = bcrypt($request);
        $user->save();

        return redirect('dash/users');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     *
     * @return void
     */
    public function show($id)
    {
        $user = User::findOrFail($id);

        return view('dash.users.show', compact('user'));
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     *
     * @return void
     */
    public function edit($id)
    {
        $user = User::findOrFail($id);

        return view('dash.users.edit', compact('user'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  int  $id
     *
     * @return void
     */
    public function update($id, Request $request)
    {
        $this->validate($request, ['email' => 'required', 'name' => 'required', 'password' => 'required', 'surname' => 'required', ]);

        $user = User::findOrFail($id);
        $user->update($request->all());

        Session::flash('flash_message', 'User updated!');

        return redirect('dash/users');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     *
     * @return void
     */
    public function destroy($id)
    {
        User::destroy($id);

        Session::flash('flash_message', 'User deleted!');

        return redirect('dash/users');
    }
}

更新,这是控制器

【讨论】:

  • 我的意思是您检查电子邮件和密码的控制器代码
  • 登录检查功能在哪里
  • 这里没有,我只是跟着AuthController,哪里错了?如果我使用“默认注册”注册新用户,它可以工作,但我的 crud 不工作(只有登录)
  • 我想看看你点击登录按钮时调用的函数
  • 我在哪里可以找到它?我通过资源下的默认登录表单登录 ->views->auth->login.blade.php
【解决方案3】:
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

/* ruote for Admin */
Route::group(['middleware' => ['web']], function () {
    Route::resource('dash/reports', 'Dash\\ReportsController');
});
Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/categories', 'Dash\\CategoriesController');
});

Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/roles', 'Dash\\RolesController');
});
Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/permissions', 'Dash\\PermissionsController');
});
Route::group(['middleware' => ['role:admin']], function () {
    Route::resource('dash/users', 'Dash\\UsersController');
});

/* another routes */
Route::auth();
Route::get('/provola', 'HomeController@autorizzazione');
Route::get('/home', 'HomeController@index');
Route::get('/', function () {return view('welcome');});


/* injection for user roles 

Route::get('/start', 'HomeController@inject');
*/

我的路线

【解决方案4】:

对于 Laravel 5.6+

密码应该使用Hash::make($password)进行哈希处理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-01
    • 2016-05-29
    • 2016-12-08
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 2016-11-04
    相关资源
    最近更新 更多