Browse Source

Worked on local-authentication.

KrisVos130 8 years ago
parent
commit
34b1f33a6d
5 changed files with 46 additions and 4 deletions
  1. 6 0
      client/html/index.html
  2. 1 0
      package.json
  3. 1 0
      server/auth/auth-controller.js
  4. 14 4
      server/auth/auth-router.js
  5. 24 0
      server/auth/index.js

+ 6 - 0
client/html/index.html

@@ -18,5 +18,11 @@
 <p>You are not logged in.</p>
 <a href='/auth/login/github'>Login with GitHub</a>
 {{/user}}
+
+<form action="/auth/login">
+    <input id="username" name="username" type="text">
+    <input id="password" name="password" type="password">
+    <button type="submit">Submit</button>
+</form>
 </body>
 </html>

+ 1 - 0
package.json

@@ -16,6 +16,7 @@
     "node-sass": "^3.8.0",
     "passport": "^0.3.2",
     "passport-github": "^1.1.0",
+    "passport-local": "^1.0.0",
     "rethinkdb": "^2.3.2",
     "rethinkdb-init": "^0.2.2"
   }

+ 1 - 0
server/auth/auth-controller.js

@@ -1,5 +1,6 @@
 var authController = {};
 authController.getUser = function (req, res) {
+    console.log(req.user, 777);
     if (req.user && req.user.id) {
         res.json(req.user);
         return;

+ 14 - 4
server/auth/auth-router.js

@@ -10,11 +10,21 @@ authRouter.use('/login/callback/github', auth.authenticate('github'), function (
 });
 authRouter.get('/login/github', auth.authenticate('github'));
 
-// Twitter
-authRouter.use('/login/callback/twitter', auth.authenticate('twitter'), function (req, res) {
-    res.redirect('/');
+// Local
+/*authRouter.post('/login', auth.authenticate('local', {successRedirect: '/user', failureRedirect: '/login'}), function(req, res) {
+    // If this function gets called, authentication was successful.
+    // `req.user` contains the authenticated user.
+    console.log(res.user.username, 111);
+    res.redirect('/user');
+});*/
+authRouter.get('/login', function(req, res, next) {
+    auth.authenticate('local', function(err, user, info) {
+        // If this gets called, authentication was successful
+        console.log(err, user, info, 333);
+        res.redirect("/auth/user");
+    })(req, res, next);
 });
-authRouter.get('/login/twitter', auth.authenticate('twitter'));
+
 
 // All
 authRouter.use('/user', authControllers.getUser);

+ 24 - 0
server/auth/index.js

@@ -1,12 +1,15 @@
 var passport = require('passport');
 var GitHubStrategy = require('passport-github').Strategy;
+var LocalStrategy = require('passport-local').Strategy;
 var r = require('../db');
 
 passport.serializeUser(function (user, done) {
+    console.log(user, 555);
     return done(null, user.id);
 });
 
 passport.deserializeUser(function (id, done) {
+    console.log(id, 444);
     r
         .table('users')
         .get(id)
@@ -68,7 +71,28 @@ passport.use(new GitHubStrategy({
     }, 'github')
 ));
 
+// Local
+passport.use(new LocalStrategy(
+    function(username, password, done) {
+        /*User.findOne({ username: username }, function (err, user) {
+            if (err) { return done(err); }
+            if (!user) {
+                return done(null, false, { message: 'Incorrect username.' });
+            }
+            if (!user.validPassword(password)) {
+                return done(null, false, { message: 'Incorrect password.' });
+            }
+            return done(null, user);
+        });*/
+        //TODO Check password
+        // This is checking if passord is valid and all
+        console.log(username, password);
+        return done(null, {id: "potatoe", login: "Kris", name: "Kristian", url: "no", avatarUrl: "no", type: "local"});
+    }
+));
+
 passport.checkIfLoggedIn = function (req, res, next) {
+    console.log(req.user, 666);
     if (req.user) {
         return next();
     }