mirror of
https://github.com/jsbin/jsbin.git
synced 2026-02-01 16:46:05 +00:00
Added backend and frontend validation for username registration
This commit is contained in:
parent
d30fd0040a
commit
d5a59f96c2
@ -53,7 +53,10 @@ module.exports = function(app, connection) {
|
||||
|
||||
// Removes user data from old cookies
|
||||
var username = undefsafe(req, 'session.user.name');
|
||||
var key = username.replace(' ', '^^');
|
||||
var key;
|
||||
if (username !== undefined) {
|
||||
key = username.replace(' ', '^^');
|
||||
}
|
||||
|
||||
var setUserMetadata = setMetadata.bind(null, req);
|
||||
var populateUserMetadata = getMetadata.bind(null, username, req, key);
|
||||
|
||||
@ -47,6 +47,18 @@ module.exports = Observable.extend({
|
||||
return next();
|
||||
}
|
||||
|
||||
var reg = /^[a-zA-Z0-9_\-]+$/;
|
||||
if (!reg.test(username)) {
|
||||
req.error = {
|
||||
ok: false,
|
||||
message: 'Only numbers, letters, underscore and dash are allowed in the username',
|
||||
raw: 'Character not allowed',
|
||||
status: 400
|
||||
};
|
||||
|
||||
return next();
|
||||
}
|
||||
|
||||
userModel.load(username, function (err, result) {
|
||||
if (result) {
|
||||
// Username taken
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
<form action="{{root}}/register" method="post" class="register">
|
||||
<div>
|
||||
<label for="signup-username">Username</label>
|
||||
<input name="username" id="signup-username" type="text" required>
|
||||
<input name="username" id="signup-username" type="text" required pattern="[a-zA-Z0-9_\-]+" oninvalid="setCustomValidity('Only numbers, letters, underscore and dash are allowed in the username')">
|
||||
</div>
|
||||
<div>
|
||||
<label for="signup-email">Email address</label>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user