I am making AMP page with Node.js backend, so i don't understand, how works amp-access.
This is my code on the page
...
<script id="amp-access" type="application/json">
{
"authorization": "/auth?rid=READER_ID&url=CANONICAL_URL",
"noPingback": true,
"login": "/login?rid=READER_ID&url=CANONICAL_URL",
"authorizationFallbackResponse": {
"error": true,
"access": false
}
}
</script>
...
<div id="subscription" amp-access="NOT access" amp-access-hide>
<h3>Subscribe</h3>
<button on="tap:amp-access.login">Click</button>
</div>
<div amp-access="access">
<p>Subscription is active</p>
</div>
...
This is login page
...
<form method="POST" action="/subscribe">
<input type="email" name="email" placeholder="Your email" required>
<input type="submit" value="Submit">
<input name="returnurl" type="hidden" value="https://cdn.ampproject.org/v0/amp-login-done-0.1.html?url=https://my.website#subscription">
</form>
...
And this is Node.js route
app.post('/subscribe', (req, res) => {
let body = _.pick(req.body, ['email']);
let user = new User(body);
user.save().then(() => {
res.send({"success": true});
}, () => {
res.status(400).send({"success": false});
});
});
I also tried redirect
app.post('/subscribe', (req, res) => {
let body = _.pick(req.body, ['email', 'returnurl']);
let user = new User(body);
user.save().then(() => {
res.redirect(body.returnurl);
}, () => {
res.redirect(body.returnurl);
});
});
But in result i see only "Waiting for my.website/subscription"
Thank you for answers!
via Inferion
No comments:
Post a Comment