· 5 years ago · Apr 28, 2020, 12:06 PM
1const express = require('express');
2const oauth = require('oauth');
3const bodyParser = require("body-parser")
4const session = require('express-session');
5const cookieParser = require('cookie-parser');
6const app = express();
7
8const _usosConsumerKey = "5b3nvk9LtDF9h8gfRSGf";
9const _usosConsumerSecret = "vNAgEUHRpRjzhqcss4YQHx463x6CwndYCm3rxXhM";
10
11const port = 3000;
12app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))
13
14
15app.get('/', (req, res) => res.send('Hello Worhghld!'))
16
17const consumer = new oauth.OAuth(
18 "https://usosapps.amu.edu.pl/services/oauth/request_token", "https://usosapps.amu.edu.pl/services/oauth/access_token", _usosConsumerKey, _usosConsumerSecret, "1.0", "http://127.0.0.1:3000/session/callback", "HMAC-SHA1"
19);
20
21app.use(bodyParser.json());
22app.use(session({
23 secret: "very secret",
24 resave: false,
25 saveUninitialized: true
26}));
27app.use(cookieParser());
28app.use(function (req, res, next) {
29 res.locals.session = req.session;
30 next();
31});
32
33app.get('/sessions/connect', (req, res) => {
34 consumer.getOAuthRequestToken((error, oauthToken, oauthTokenSecret, results) => {
35 if (error) {
36 res.send("błąd przy braniu OAuth request tokenu:" + error);
37 } else {
38 req.session.oauthRequestToken = oauthToken;
39 req.session.oauthRequestTokenSecret = oauthTokenSecret;
40 console.log("Double check on 2nd step");
41 console.log("------------------------");
42 console.log(`<<${req.session.oauthRequestToken}`);
43 console.log(`<<${req.session.oauthRequestTokenSecret}`);
44 res.redirect("https://usosapps.amu.edu.pl/services/oauth/authorize?oauth_token=" + req.session.oauthRequestToken);
45 }
46 });
47});
48
49app.get('/session/callback', (req, res) => {
50 console.log("------------------------");
51 console.log(">>" + req.session.oauthRequestToken);
52 console.log(">>" + req.session.oauthRequestTokenSecret);
53 console.log(">>" + req.query.oauth_verifier);
54 consumer.getOAuthAccessToken(req.session.oauthRequestToken, req.session.oauthRequestTokenSecret, req.query.oauth_verifier, function (error, oauthAccessToken, oauthAccessTokenSecret, results) {
55 if (error) {
56 res.status(500).send("Eeeor getting OAuth access tokent" + error);
57 } else {
58 req.session.oauthAccessToken = oauthAccessToken;
59 req.session.oauthAccessTokenSecret = oauthAccessTokenSecret;
60
61 res.redirect('/home');
62 }
63 });
64})
65
66app.get('/home', function (req, res) {
67 consumer.get("https://usosapps.amu.edu.pl/services/users/user2", req.session.oauthAccessToken, req.session.oauthAccessTokenSecret, function (error, data, response) {
68 if (error) {
69 //console.log(error)
70 res.redirect('/sessions/connect');
71 } else {
72 var parsedData = JSON.parse(data);
73 res.send('You are signed in: ' + inspect(parsedData.screen_name));
74 }
75 });
76});