Skip to content

Instantly share code, notes, and snippets.

View tetrashine's full-sized avatar

louisz tetrashine

View GitHub Profile
const nodemailer = require("nodemailer");
let transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
type: 'OAuth2',
user: '[your email]',
clientId: '',
clientSecret: '',
refreshToken: '',
const nodemailer = require("nodemailer");
let transporter = nodemailer.createTransport({
service: 'Gmail',
auth: {
type: 'OAuth2',
user: '[your email]',
clientId: '',
clientSecret: '',
refreshToken: '',
<html>
<head>
<title>reCAPTCHA demo: Explicit render after an onload callback</title>
<script type="text/javascript">
var onloadCallback = function() {
grecaptcha.render('html_element', {
'sitekey' : 'your_site_key'
});
};
</script>
<html>
<head>
<title>reCAPTCHA demo: Simple page</title>
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
</head>
<body>
<form action="?" method="POST">
<div class="g-recaptcha" data-sitekey="your_site_key"></div>
<br/>
<input type="submit" value="Submit">
@tetrashine
tetrashine / captcha-backend.js
Last active July 18, 2020 11:37
captcha-backend.js
const captchaToken = req.body.token;
const data = querystring.stringify({
secret: fullConfig.CAPTCHA_SECRET,
response: captchaToken
});
const verifiedHuman = await (new Promise((resolve, reject) => {
const options = {
@tetrashine
tetrashine / react-recaptcha.js
Created July 18, 2020 14:18
react-recaptcha
import ReCAPTCHA from "react-google-recaptcha";
function onChange(value) {
console.log("Captcha value:", value);
}
ReactDOM.render(
<ReCAPTCHA
sitekey="Your client site key"
onChange={onChange}
@tetrashine
tetrashine / helmet.js
Created July 19, 2020 10:24
helmet.js
const express = require('express')
const helmet = require('helmet')
const app = express()
app.use(helmet())
@tetrashine
tetrashine / helmet-2.js
Created July 19, 2020 10:29
helmet-2.js
app.use(helmet.referrerPolicy({ policy: 'same-origin' }));
app.use(helmet.contentSecurityPolicy({
directives: {
defaultSrc: ["'self'", ...],
fontSrc: ["'self'", ...],
imgSrc: ["'self'", ...],
scriptSrc: ["'self'", ...],
styleSrc: ["'self'", ...],
connectSrc: ["'self'", ...],
}
const InfoButtonHoc = (component) => {
return class ExtendedComponent extends React.Component {
render() {
const { tooltip, excludeTooltipProps } = this.props;
return (<div className='info-btn' tooltip={tooltip}>
<component {...this.excludeTooltipProps} />
</div>);
}
};
};
@tetrashine
tetrashine / multer-fileupload-1.jsx
Last active August 23, 2020 07:44
multer fileupload part 1
const express = require('express');
const app = express();
const port = 8080;
app.use('/', express.static('public'));
app.listen(port, () => console.log(`Running aserver listing on port ${port}...`));