PHP laravel 加模块,PHP Laravel 框架 扩展自己需要的 Auth 模块

PHPLaravel框架扩展自己需要的Auth模块 Laravel PHP Auth::extend('platform', function($app) { $provider = new \Illuminate\Auth\PlatformUserProvider( $app['db']-connection(), $app['hash'],$app['config']['auth.table']); return new \Illuminate\Au

PHP Laravel 框架 扩展自己需要的 Auth 模块

Laravel PHP

Auth::extend('platform', function($app) {

$provider = new \Illuminate\Auth\PlatformUserProvider(

$app['db']->connection(),

$app['hash'],

$app['config']['auth.table']

);

return new \Illuminate\Auth\Guard($provider, App::make('session.store') );

});

conn = $conn;

$this->table = $table;

$this->hasher = $hasher;

}

/**

* Retrieve a user by their unique identifier.

*

* @param mixed $identifier

* @return \Illuminate\Auth\UserInterface|null

*/

public function retrieveById($identifier)

{

$user = $this->conn->table($this->table)->find($identifier);

if ( ! is_null($user))

{

return new GenericUser((array) $user);

}

}

/**

* Retrieve a user by by their unique identifier and "remember me" token.

*

* @param mixed $identifier

* @param string $token

* @return \Illuminate\Auth\UserInterface|null

*/

public function retrieveByToken($identifier, $token)

{

$user = $this->conn->table($this->table)

->where('id', $identifier)

->where('remember_token', $token)

->first();

if ( ! is_null($user))

{

return new GenericUser((array) $user);

}

}

/**

* Update the "remember me" token for the given user in storage.

*

* @param \Illuminate\Auth\UserInterface $user

* @param string $token

* @return void

*/

public function updateRememberToken(UserInterface $user, $token)

{

$this->conn->table($this->table)

->where('id', $user->getAuthIdentifier())

->update(array('remember_token' => $token));

}

/**

* Retrieve a user by the given credentials.

*

* @param array $credentials

* @return \Illuminate\Auth\UserInterface|null

*/

public function retrieveByCredentials(array $credentials)

{

// First we will add each credential element to the query as a where clause.

// Then we can execute the query and, if we found a user, return it in a

// generic "user" object that will be utilized by the Guard instances.

$query = $this->conn->table($this->table);

foreach ($credentials as $key => $value)

{

if ( ! str_contains($key, 'login_pwd'))

{

$query->where($key, $value);

}

}

// Now we are ready to execute the query to see if we have an user matching

// the given credentials. If not, we will just return nulls and indicate

// that there are no matching users for these given credential arrays.

$user = $query->first();

if ( ! is_null($user))

{

return new GenericUser((array) $user);

}

}

/**

* Validate a user against the given credentials.

*

* @param \Illuminate\Auth\UserInterface $user

* @param array $credentials

* @return bool

*/

public function validateCredentials(UserInterface $user, array $credentials)

{

$plain = $credentials['login_pwd'];

return $this->hasher->check($plain, $user->getAuthPassword());

}

}

attributes = $attributes;

}

/**

* Get the unique identifier for the user.

*

* @return mixed

*/

public function getAuthIdentifier()

{

return $this->attributes['id'];

}

/**

* Get the password for the user.

*

* @return string

*/

public function getAuthPassword()

{

return $this->attributes['login_pwd'];

}

/**

* Get the token value for the "remember me" session.

*

* @return string

*/

public function getRememberToken()

{

return $this->attributes['remember_token'];

}

/**

* Set the token value for the "remember me" session.

*

* @param string $value

* @return void

*/

public function setRememberToken($value)

{

$this->attributes['remember_token'] = $value;

}

/**

* Get the column name for the "remember me" token.

*

* @return string

*/

public function getRememberTokenName()

{

return 'remember_token';

}

/**

* Dynamically access the user's attributes.

*

* @param string $key

* @return mixed

*/

public function __get($key)

{

return $this->attributes[$key];

}

/**

* Dynamically set an attribute on the user.

*

* @param string $key

* @param mixed $value

* @return void

*/

public function __set($key, $value)

{

$this->attributes[$key] = $value;

}

/**

* Dynamically check if a value is set on the user.

*

* @param string $key

* @return bool

*/

public function __isset($key)

{

return isset($this->attributes[$key]);

}

/**

* Dynamically unset a value on the user.

*

* @param string $key

* @return bool

*/

public function __unset($key)

{

unset($this->attributes[$key]);

}

}

'eloquent',

//'driver' => 'database',

'driver' => 'platform',

//这里改成自己的driver

/*

|--------------------------------------------------------------------------

| Authentication Model

|--------------------------------------------------------------------------

|

| When using the "Eloquent" authentication driver, we need to know which

| Eloquent model should be used to retrieve your users. Of course, it

| is often just the "User" model but you may use whatever you like.

|

*/

'model' => 'User',

/*

|--------------------------------------------------------------------------

| Authentication Table

|--------------------------------------------------------------------------

|

| When using the "Database" authentication driver, we need to know which

| table should be used to retrieve your users. We have chosen a basic

| default value but you may easily change it to any table you like.

|

*/

//'table' => 'users',

'table' => 'members',

/*

|--------------------------------------------------------------------------

| Password Reminder Settings

|--------------------------------------------------------------------------

|

| Here you may set the settings for password reminders, including a view

| that should be used as your password reminder e-mail. You will also

| be able to set the name of the table that holds the reset tokens.

|

| The "expire" time is the number of minutes that the reminder should be

| considered valid. This security feature keeps tokens short-lived so

| they have less time to be guessed. You may change this as needed.

|

*/

'reminder' => array(

'email' => 'emails.auth.reminder',

'table' => 'password_reminders',

'expire' => 60,

),

);

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值