Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
syncEnrollments
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yeray Santana Hualde
syncEnrollments
Commits
c49e1964
Commit
c49e1964
authored
May 01, 2012
by
Taylor Otwell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Working on base authentication driver.
parent
840954eb
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
189 additions
and
0 deletions
+189
-0
driver.php
laravel/auth/drivers/driver.php
+189
-0
No files found.
laravel/auth/drivers/driver.php
0 → 100644
View file @
c49e1964
<?php
namespace
Laravel\Auth\Login\Drivers
;
use
Laravel\Str
;
use
Laravel\Cookie
;
use
Laravel\Session
;
abstract
class
Driver
{
/**
* The user currently being managed by the driver.
*
* @var mixed
*/
public
$user
;
/**
* The current value of the user's token.
*
* @var string|null
*/
public
$token
;
/**
* Create a new login auth driver instance.
*
* @return void
*/
public
function
__construct
()
{
if
(
Session
::
started
())
{
$this
->
token
=
Session
::
get
(
$this
->
token
());
}
// If a token did not exist in the session for the user, we will attempt
// to load the value of a "remember me" cookie for the driver, which
// serves as a long-lived client side authenticator for the user.
if
(
is_null
(
$this
->
token
))
{
$this
->
token
=
$this
->
recall
();
}
}
/**
* Determine if the user is logged in.
*
* @return bool
*/
public
function
check
()
{
return
!
is_null
(
$this
->
user
());
}
/**
* Get the current user of the application.
*
* If the user is a guest, null should be returned.
*
* @return mixed|null
*/
abstract
public
function
user
();
/**
* Attempt to log a user into the application.
*
* @param dynamic $arguments
* @return void
*/
abstract
public
function
attempt
();
/**
* Login the user assigned to the given token.
*
* The token is typically a numeric ID for the user.
*
* @param string $token
*/
public
function
login
(
$token
)
{
$this
->
store
(
$token
);
}
/**
* Log the user out of the driver's auth context.
*
* @return void
*/
public
function
logout
()
{
$this
->
user
=
null
;
$this
->
cookie
(
$this
->
recaller
(),
null
,
-
2000
);
Session
::
forget
(
$this
->
token
());
}
/**
* Store a user's token in the session.
*
* @param string $token
* @return void
*/
protected
function
store
(
$token
)
{
Session
::
put
(
$this
->
token
(),
$token
);
}
/**
* Store a user's token in a long-lived cookie.
*
* @param string $token
* @return void
*/
protected
function
remember
(
$token
)
{
$token
=
Crypter
::
encrypt
(
$token
.
'|'
.
Str
::
random
(
40
));
$this
->
cookie
(
$this
->
recaller
(),
$token
,
Cookie
::
forever
);
}
/**
* Attempt to find a "remember me" cookie for the user.
*
* @return string|null
*/
protected
function
recall
()
{
$cookie
=
Cookie
::
get
(
$this
->
recaller
());
// By default, "remember me" cookies are encrypted and contain the user
// token as well as a random string. If it exists, we'll decrypt it
// and return the first segment, which is the user's ID token.
if
(
!
is_null
(
$cookie
))
{
return
head
(
explode
(
'|'
,
Crypter
::
decrypt
(
$cookie
)));
}
}
/**
* Store an authentication cookie.
*
* @param string $name
* @param string $value
* @param int $minutes
* @return void
*/
protected
function
cookie
(
$name
,
$value
,
$minutes
)
{
// When setting the default implementation of an authentication
// cookie we'll use the same settings as the session cookie.
// This typically makes sense as they both are sensitive.
$config
=
Config
::
get
(
'session'
);
extract
(
$config
);
Cookie
::
put
(
$name
,
$minutes
,
$token
,
$path
,
$domain
,
$secure
);
}
/**
* Get session key name used to store the token.
*
* @return string
*/
protected
function
token
()
{
return
$this
->
name
()
.
'_login'
;
}
/**
* Get the name used for the "remember me" cookie.
*
* @return string
*/
protected
function
recaller
()
{
return
$this
->
name
()
.
'_remember'
;
}
/**
* Get the name of the driver in a storage friendly format.
*
* @return string
*/
protected
function
name
()
{
return
strtolower
(
str_replace
(
'\\'
,
'_'
,
get_class
(
$this
)));
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment