Advertisement
Guest User

Untitled

a guest
Nov 7th, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. import Koa from 'koa'
  2. import views from 'koa-views'
  3. import serve from 'koa-static'
  4. import rootRoutes from './routes/index'
  5. import userRoutes from './routes/user'
  6. import authConfig from './config/oauth'
  7. import authRoutes from './routes/social'
  8. const app = new Koa()
  9. // trust proxy
  10. app.proxy = true
  11.  
  12. // sessions
  13. const convert = require('koa-convert')
  14. const session = require('koa-generic-session')
  15. const passport = require('koa-passport')
  16. app.keys = ['your-session-secret']
  17. // body parser
  18. const bodyParser = require('koa-bodyparser')
  19. // require('./auth')
  20. app.use(bodyParser())
  21. app.use(convert(session()))
  22.  
  23. // authentication
  24. app.use(convert(passport.initialize()))
  25. app.use(convert(passport.session()))
  26. app.use(views(`${__dirname}/views`, { extension: 'html' }))
  27. app.use(serve(`${__dirname}/public`))
  28. app.use(authRoutes.routes())
  29. app.use(authRoutes.allowedMethods())
  30. app.use(rootRoutes.routes())
  31. console.log("authRoutes", authRoutes);
  32. app.use(rootRoutes.allowedMethods())
  33. app.use(userRoutes.routes())
  34. app.use(userRoutes.allowedMethods())
  35. app.use(async (ctx, next) => {
  36. try {
  37. await next(); // next is now a function, await instead of yield
  38. } catch (err) {
  39. ctx.body = { message: err.message };
  40. ctx.status = err.status || 500;
  41. }
  42. });
  43. app.listen(1337, () => {
  44. console.log('Server running at http://localhost:1337 and http://127.0.0.1:1337')
  45. })
  46.  
  47. export default app
  48.  
  49. import Router from 'koa-router'
  50. const router = new Router()
  51. import authConfig from '../config/oauth'
  52. import passport from 'koa-passport'
  53. var user = { id: 1, username: 'test' }
  54.  
  55. passport.serializeUser((user, done) => {
  56. console.log(user)
  57. done(null, user);
  58. });
  59.  
  60. passport.deserializeUser((id, done) => {
  61. (async () => {
  62. try {
  63. // const user = await User.findById(id);
  64. console.log("user", user);
  65. done(null, user);
  66. } catch (error) {
  67. console.log("error")
  68. done(error);
  69. }
  70. })();
  71. });
  72.  
  73. var LocalStrategy = require('passport-local').Strategy
  74. passport.use(new LocalStrategy(function(username, password, done) {
  75. console.log("user", user);
  76. // retrieve user ...
  77. if (username === 'test' && password === 'test') {
  78. done(null, user)
  79. } else {
  80. done(null, false)
  81. }
  82. }))
  83.  
  84. var FacebookStrategy = require('passport-facebook').Strategy
  85. passport.use(new FacebookStrategy({
  86. clientID: '214873665615110',
  87. clientSecret: 'f30ba1c22c6fef150c4b8ffae3cbffe4',
  88. callbackURL: 'http://127.0.0.1:1337/auth/facebook/callback'
  89. },
  90. function(token, tokenSecret, profile, done) {
  91. console.log("profile", profile);
  92. // retrieve user ...
  93. done(null, user)
  94. }
  95. ))
  96.  
  97. var TwitterStrategy = require('passport-twitter').Strategy
  98. passport.use(new TwitterStrategy({
  99. consumerKey: 'authConfig.twitter.consumerKey',
  100. consumerSecret: 'authConfig.twitter.consumerSecret',
  101. callbackURL: 'http://127.0.0.1:' + (process.env.PORT || 1337) + '/auth/twitter/callback'
  102. },
  103. function(token, tokenSecret, profile, done) {
  104. // retrieve user ...
  105. done(null, user)
  106. }
  107. ))
  108.  
  109. var GoogleStrategy = require('passport-google-auth').Strategy
  110. passport.use(new GoogleStrategy({
  111. clientId: 'authConfig.google.clientID',
  112. clientSecret: 'authConfig.google.clientSecret',
  113. callbackURL: 'http://127.0.0.1:' + (process.env.PORT || 1337) + '/auth/google/callback'
  114. },
  115. function(token, tokenSecret, profile, done) {
  116. // retrieve user ...
  117. done(null, user)
  118. }
  119. ))
  120.  
  121. // import authConfig from '../config/oauth'
  122. router.post('/login', async(ctx, next) => {
  123. console.log("login");
  124. await passport.authenticate('local', {
  125. successRedirect: '/about',
  126. failureRedirect: '/'
  127. })
  128. return next();
  129. })
  130.  
  131. router.get('/auth/facebook', async(ctx, next) => {
  132. console.log("call aayi");
  133. await passport.authenticate('facebook');
  134. // ctx.body = "aa gaya bhai ";
  135. })
  136.  
  137. router.get('/auth/facebook/callback', async(ctx, next) => {
  138. passport.authenticate('facebook', {
  139. successRedirect: '/about',
  140. failureRedirect: '/'
  141. })
  142. })
  143. export default router
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement