mirror of https://github.com/flarum/flarum
Setting up faker.js
parent
c77ce64201
commit
48d6e310db
|
@ -1,5 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
namespace SSO;
|
||||||
|
|
||||||
class Forum
|
class Forum
|
||||||
{
|
{
|
||||||
const REMEMBER_ME_KEY = 'flarum_remember';
|
const REMEMBER_ME_KEY = 'flarum_remember';
|
||||||
|
@ -17,13 +19,13 @@ class Forum
|
||||||
* @param $username
|
* @param $username
|
||||||
* @param $email
|
* @param $email
|
||||||
*/
|
*/
|
||||||
public function login($username, $email)
|
public function login($username, $email, $avatarUrl)
|
||||||
{
|
{
|
||||||
$password = $this->createPassword($username);
|
$password = $this->createPassword($username);
|
||||||
$token = $this->getToken($username, $password);
|
$token = $this->getToken($username, $password);
|
||||||
|
|
||||||
if (empty($token)) {
|
if (empty($token)) {
|
||||||
$this->signup($username, $password, $email);
|
$this->signup($username, $password, $email, $avatarUrl);
|
||||||
$token = $this->getToken($username, $password);
|
$token = $this->getToken($username, $password);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -65,7 +67,7 @@ class Forum
|
||||||
return isset($response['token']) ? $response['token'] : '';
|
return isset($response['token']) ? $response['token'] : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
private function signup($username, $password, $email)
|
private function signup($username, $password, $email, $avatarUrl)
|
||||||
{
|
{
|
||||||
$data = [
|
$data = [
|
||||||
"data" => [
|
"data" => [
|
||||||
|
@ -74,7 +76,7 @@ class Forum
|
||||||
"username" => $username,
|
"username" => $username,
|
||||||
"password" => $password,
|
"password" => $password,
|
||||||
"email" => $email,
|
"email" => $email,
|
||||||
"avatarUrl" => "https://cyantificdsgn.files.wordpress.com/2009/11/spidey.png"
|
"avatarUrl" => $avatarUrl
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
11
sso/auth.php
11
sso/auth.php
|
@ -1,16 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
require_once __DIR__ . '/Forum.php';
|
use SSO\Flarum;
|
||||||
|
|
||||||
$users = [
|
$auth_token = $_GET['auth_token'];
|
||||||
'user' => [
|
|
||||||
'password' => 'password',
|
|
||||||
'email' => 'test@mailinator.com',
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
$username = empty($_POST['username']) ? '' : $_POST['username'];
|
|
||||||
$password = empty($_POST['password']) ? '' : $_POST['password'];
|
|
||||||
|
|
||||||
if (isset($users[$username]) && $users[$username]['password'] === $password) {
|
if (isset($users[$username]) && $users[$username]['password'] === $password) {
|
||||||
$email = $users[$username]['email'];
|
$email = $users[$username]['email'];
|
||||||
|
|
|
@ -1,7 +1,58 @@
|
||||||
<h1>Login</h1>
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
|
||||||
<form method="post" action="auth.php">
|
<title>Shaw Academy</title>
|
||||||
<input type="text" name="username" placeholder="Username">
|
|
||||||
<input type="password" name="password" placeholder="Password">
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
|
||||||
<button type="submit">Login</button>
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
|
||||||
</form>
|
|
||||||
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||||
|
<!-- Leave those next 4 lines if you care about users using IE8 -->
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||||
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container text-center">
|
||||||
|
<div class="jumbotron">
|
||||||
|
<h3>Hypothetical Phoenix Authenticated Page</h3>
|
||||||
|
<p>A user is logged into members area. Let's demonstrate SSO with Flarum.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a class="btn btn-primary btn-lg btn-block" href="/auth.php?auth_token=test">Visit Forum</a>
|
||||||
|
<pre>href="/auth.php?auth_token=test"</pre>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Including Bootstrap JS (with its jQuery dependency) so that dynamic components work -->
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
|
||||||
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
|
||||||
|
|
||||||
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/Faker/3.1.0/faker.min.js"></script>
|
||||||
|
<script>
|
||||||
|
var randomUsername = faker.internet.userName();
|
||||||
|
var randomAvatar = faker.internet.avatar();
|
||||||
|
var randomEmail = faker.internet.email();
|
||||||
|
var randomName = faker.name.findName();
|
||||||
|
var fake = {
|
||||||
|
username: randomUsername,
|
||||||
|
avatarUrl: randomAvatar,
|
||||||
|
email: randomEmail,
|
||||||
|
name: randomName
|
||||||
|
};
|
||||||
|
var encoded = window.btoa(JSON.stringify(fake));
|
||||||
|
console.log(fake);
|
||||||
|
console.log(encoded);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue