You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

110 lines
3.1 KiB

<?php $this->layout('layout', ['title' => $title]); ?>
<div class="column">
<h1>X-Ray Certificate Setup</h1>
<?php if(isset($_SESSION['me'])): ?>
<?php if(isset($verified) && $verified): ?>
<div class="section">
<p>The challenge was saved and is now accessible via the <code>.well-known</code> path.</p>
<p><a href="/.well-known/acme-challenge/<?= $token ?>">view challenge</a></p>
</div>
<?php else: ?>
<div class="section">
<form class="" action="/cert/save-challenge" method="post">
<div class="field"><input type="text" name="token" placeholder="http://xray.p3k.io/.well-known/acme-challenge/_Tzyxwvut..." value="<?= isset($token) ? $token : '' ?>"></div>
<div class="field"><textarea name="challenge" rows="4" placeholder="challenge value"><?= isset($challenge) ? $challenge : '' ?></textarea></div>
<div class="field"><button type="submit" class="button">Save</button></div>
</form>
</div>
<?php endif ?>
<div style="margin-top: 1em; font-size: 12px;">
Signed in as <?= $_SESSION['me'] ?> <a href="/cert/logout">Sign Out</a>.
</div>
<?php else: ?>
<div class="section">
<form class="" action="/cert/auth" method="get">
<div class="field"><input type="url" name="me" placeholder="https://you.example.com"></div>
<div class="field"><button type="submit" class="button">Sign In</button></div>
<input type="hidden" name="client_id" value="https://<?= $_SERVER['SERVER_NAME'] ?>/">
<input type="hidden" name="redirect_uri" value="https://<?= $_SERVER['SERVER_NAME'] ?>/cert/redirect">
<input type="hidden" name="state" value="<?= isset($state) ? $state : '' ?>">
</form>
</div>
<?php endif ?>
</div>
<script>
var base = window.location.protocol + "//" + window.location.hostname + "/";
document.querySelector("input[name=client_id]").value = base;
document.querySelector("input[name=redirect_uri]").value = base+"cert/redirect";
</script>
<style type="text/css">
body {
color: #212121;
font-family: "Helvetica Neue", "Calibri Light", Roboto, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
background-color: #e9e9e9;
font-size: 16px;
}
h1 {
padding-top: 6rem;
padding-bottom: 1rem;
text-align: center;
}
a {
color: #4183c4;
text-decoration: none;
}
.column {
max-width: 450px;
margin: 0 auto;
}
.section {
border: 1px #ccc solid;
border-radius: 6px;
background: white;
padding: 12px;
margin-top: 2em;
}
.help {
text-align: center;
font-size: 0.9rem;
}
form .field {
margin-bottom: .5rem;
display: flex;
}
form input, form textarea, form button {
width: 100%;
border: 1px #ccc solid;
border-radius: 4px;
flex: 1 0;
font-size: 1rem;
}
form input, form textarea {
padding: .5rem;
}
form .button {
background-color: #009c95;
border: 0;
border-radius: 4px;
color: white;
font-weight: bold;
font-size: 1rem;
cursor: pointer;
padding: 0.5rem;
}
</style>