File tree Expand file tree Collapse file tree 5 files changed +72
-0
lines changed
Expand file tree Collapse file tree 5 files changed +72
-0
lines changed Original file line number Diff line number Diff line change 1+ .DS_Store
2+ node_modules
Original file line number Diff line number Diff line change 1+ lambda-session-auth
2+ ========
3+
4+ Cookie-based session authentication using AWS Lambda and Node.
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ const users = {
4+ user1 : 'pass1' ,
5+ user2 : 'pass2'
6+ } ;
7+
8+ module . exports = {
9+ auth : ( user , pass ) => {
10+ return new Promise ( ( resolve , reject ) => {
11+ if ( ! user || ! pass ) {
12+ return resolve ( { success : false , message : 'Must provide username and password.' } ) ;
13+ } else if ( ! users [ user ] ) {
14+ return resolve ( { success : false , message : 'User doesn\'t exist.' } ) ;
15+ } else if ( users [ user ] !== pass ) {
16+ return resolve ( { success : false , message : 'Incorrect password.' } ) ;
17+ } else {
18+ return resolve ( { success : true } ) ;
19+ }
20+ } ) ;
21+ }
22+ } ;
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ const auth = require ( './auth' ) ;
4+ const session = require ( './session' ) ;
5+
6+ module . exports = {
7+ post : ( event , context ) => {
8+ const user = event . data . username ;
9+ const pass = event . data . password ;
10+ auth ( user , pass ) . then ( ( authRes ) => {
11+ if ( res ) {
12+ session . set ( user ) . then ( ( cookie ) => {
13+ return context . done ( null , Object . assign ( authRes , cookie ) ) ;
14+ } ) ;
15+ } else {
16+ return context . done ( null , authRes )
17+ }
18+ } ) ;
19+ } ,
20+ get : ( event , context ) => {
21+ const cookie = event . headers ? event . headers . Cookie : '' ;
22+
23+ }
24+ } ;
Original file line number Diff line number Diff line change 1+ 'use strict' ;
2+
3+ const cookieKey = 'SID' ;
4+ const cookiePrefix = 'Session::' ;
5+
6+ module . exports = {
7+ set : ( user ) => {
8+ const sessionId = `${ cookiePrefix } ${ user } ` ;
9+ const newCookie = `${ cookieKey } =${ sessionId } ` ;
10+ return { Cookie : newCookie } ;
11+ } ,
12+ get : ( sessionId ) => {
13+ const user = sessionId . replace ( cookiePrefix , '' ) ;
14+ if ( user ) {
15+ return true ;
16+ } else {
17+ return false ;
18+ }
19+ }
20+ } ;
You can’t perform that action at this time.
0 commit comments