parent
6e2040249b
commit
fd296e2d8f
@ -1,95 +1,17 @@ |
|||||||
<!doctype html> |
@extends('layouts.app') |
||||||
<html lang="{{ app()->getLocale() }}"> |
|
||||||
<head> |
@section('content') |
||||||
<meta charset="utf-8"> |
<div class="container"> |
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
<div class="row justify-content-center"> |
||||||
<meta name="viewport" content="width=device-width, initial-scale=1"> |
<div class="col-md-8"> |
||||||
|
<div class="card"> |
||||||
<title>Laravel</title> |
<div class="card-header">Dashboard</div> |
||||||
|
|
||||||
<!-- Fonts --> |
<div class="card-body"> |
||||||
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css"> |
<h1>Welcome to the public landing page.</h1> |
||||||
|
</div> |
||||||
<!-- Styles --> |
</div> |
||||||
<style> |
</div> |
||||||
html, body { |
</div> |
||||||
background-color: #fff; |
</div> |
||||||
color: #636b6f; |
@endsection |
||||||
font-family: 'Raleway', sans-serif; |
|
||||||
font-weight: 100; |
|
||||||
height: 100vh; |
|
||||||
margin: 0; |
|
||||||
} |
|
||||||
|
|
||||||
.full-height { |
|
||||||
height: 100vh; |
|
||||||
} |
|
||||||
|
|
||||||
.flex-center { |
|
||||||
align-items: center; |
|
||||||
display: flex; |
|
||||||
justify-content: center; |
|
||||||
} |
|
||||||
|
|
||||||
.position-ref { |
|
||||||
position: relative; |
|
||||||
} |
|
||||||
|
|
||||||
.top-right { |
|
||||||
position: absolute; |
|
||||||
right: 10px; |
|
||||||
top: 18px; |
|
||||||
} |
|
||||||
|
|
||||||
.content { |
|
||||||
text-align: center; |
|
||||||
} |
|
||||||
|
|
||||||
.title { |
|
||||||
font-size: 84px; |
|
||||||
} |
|
||||||
|
|
||||||
.links > a { |
|
||||||
color: #636b6f; |
|
||||||
padding: 0 25px; |
|
||||||
font-size: 12px; |
|
||||||
font-weight: 600; |
|
||||||
letter-spacing: .1rem; |
|
||||||
text-decoration: none; |
|
||||||
text-transform: uppercase; |
|
||||||
} |
|
||||||
|
|
||||||
.m-b-md { |
|
||||||
margin-bottom: 30px; |
|
||||||
} |
|
||||||
</style> |
|
||||||
</head> |
|
||||||
<body> |
|
||||||
<div class="flex-center position-ref full-height"> |
|
||||||
@if (Route::has('login')) |
|
||||||
<div class="top-right links"> |
|
||||||
@auth |
|
||||||
<a href="{{ url('/home') }}">Home</a> |
|
||||||
@else |
|
||||||
<a href="{{ route('login') }}">Login</a> |
|
||||||
<a href="{{ route('register') }}">Register</a> |
|
||||||
@endauth |
|
||||||
</div> |
|
||||||
@endif |
|
||||||
|
|
||||||
<div class="content"> |
|
||||||
<div class="title m-b-md"> |
|
||||||
Laravel |
|
||||||
</div> |
|
||||||
|
|
||||||
<div class="links"> |
|
||||||
<a href="https://laravel.com/docs">Documentation</a> |
|
||||||
<a href="https://laracasts.com">Laracasts</a> |
|
||||||
<a href="https://laravel-news.com">News</a> |
|
||||||
<a href="https://forge.laravel.com">Forge</a> |
|
||||||
<a href="https://github.com/laravel/laravel">GitHub</a> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</div> |
|
||||||
</body> |
|
||||||
</html> |
|
||||||
|
@ -1,56 +1,58 @@ |
|||||||
<?php namespace SocialNorm; |
<?php namespace SocialNorm; |
||||||
|
|
||||||
use SocialNorm\Exceptions\InvalidAuthorizationCodeException; |
use SocialNorm\Exceptions\InvalidAuthorizationCodeException; |
||||||
use SocialNorm\State\StateManager; |
|
||||||
|
|
||||||
class SocialNorm |
class SocialNorm |
||||||
{ |
{ |
||||||
protected $providers; |
protected $providers; |
||||||
protected $session; |
protected $session; |
||||||
protected $request; |
protected $request; |
||||||
protected $stateGenerator; |
protected $stateGenerator; |
||||||
|
|
||||||
public function __construct( |
public function __construct( |
||||||
ProviderRegistry $providers, |
ProviderRegistry $providers, |
||||||
Session $session, |
Session $session, |
||||||
Request $request, |
Request $request, |
||||||
StateGenerator $stateGenerator |
StateGenerator $stateGenerator |
||||||
) |
) |
||||||
{ |
{ |
||||||
$this->providers = $providers; |
$this->providers = $providers; |
||||||
$this->session = $session; |
$this->session = $session; |
||||||
$this->request = $request; |
$this->request = $request; |
||||||
$this->stateGenerator = $stateGenerator; |
$this->stateGenerator = $stateGenerator; |
||||||
} |
} |
||||||
|
|
||||||
public function registerProvider($alias, Provider $provider) |
public function registerProvider($alias, Provider $provider) |
||||||
{ |
{ |
||||||
$this->providers->registerProvider($alias, $provider); |
$this->providers->registerProvider($alias, $provider); |
||||||
} |
} |
||||||
|
|
||||||
public function authorize($providerAlias) |
public function authorize($providerAlias) |
||||||
{ |
{ |
||||||
$state = $this->stateGenerator->generate(); |
$state = $this->stateGenerator->generate(); |
||||||
$this->session->put('oauth.state', $state); |
|
||||||
return $this->getProvider($providerAlias)->authorizeUrl($state); |
// this is for some reason needed, plain put doesn't work across the redirect |
||||||
} |
\Session::put('oauth.state', $state); |
||||||
|
\Session::save(); |
||||||
public function getUser($providerAlias) |
|
||||||
{ |
return $this->getProvider($providerAlias)->authorizeUrl($state); |
||||||
$this->verifyState(); |
} |
||||||
return $this->getProvider($providerAlias)->getUser(); |
|
||||||
} |
public function getUser($providerAlias) |
||||||
|
{ |
||||||
protected function getProvider($providerAlias) |
$this->verifyState(); |
||||||
{ |
return $this->getProvider($providerAlias)->getUser(); |
||||||
return $this->providers->getProvider($providerAlias); |
} |
||||||
} |
|
||||||
|
protected function getProvider($providerAlias) |
||||||
protected function verifyState() |
{ |
||||||
{ |
return $this->providers->getProvider($providerAlias); |
||||||
// FIXME this is broken, can't find why |
} |
||||||
// if ($this->session->get('oauth.state') !== $this->request->state()) { |
|
||||||
// throw new InvalidAuthorizationCodeException; |
protected function verifyState() |
||||||
// } |
{ |
||||||
} |
if (\Session::get('oauth.state') !== $this->request->state()) { |
||||||
|
throw new InvalidAuthorizationCodeException; |
||||||
|
} |
||||||
|
} |
||||||
} |
} |
||||||
|
Loading…
Reference in new issue