# Session being lost before TwitterOauth callback

**URL:** <https://www.ruby-forum.com/t/session-being-lost-before-twitteroauth-callback/226058>\
**Category:** Rails\
**Created:** [January 29, 2010, 5:08am UTC](https://www.ruby-forum.com/t/session-being-lost-before-twitteroauth-callback/226058 "2010-01-29T05:08:01Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![acreadinglist](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/ccd318/32.png) [@acreadinglist](https://www.ruby-forum.com/u/acreadinglist)\
**Post date:** [January 29, 2010, 5:08am UTC](https://www.ruby-forum.com/t/session-being-lost-before-twitteroauth-callback/226058/1 "2010-01-29T05:08:01Z")

</div>

I’m building something like a multi-twitter-feed-manager, using the  
TwitterOauth plugin to handle authorization with Twitter. Before  
redirecting to Twitter, I add some data to the session. When Twitter  
redirects to the callback, the session is empty. Can anyone explain  
this?

Here’s the controller.

class TwitterAuthorizationsController \< ApplicationController  
def new  
@authorization = TwitterAuthorization.new  
@authorization.request  
@authorization.prepare\_session session

```
#this correctly prints out the session
puts "TwitterAuthorizationsController#new session #

```

{session.to\_json}"

```
redirect_to @authorization.url

```

end

def callback  
#and here it’s empty  
puts “TwitterAuthorizationsController#callback session #  
{session.to\_json}”

```
@authorization = TwitterAuthorization.new
@authorization.authorize session

@authorization.save

```

end  
end

And here’s the model:

class TwitterAuthorization \< ActiveRecord::Base  
has\_many :twitter\_authentications

def initialize  
@client = TwitterOAuth::Client.new(:consumer\_key =\>  
‘\*\*\*\ ***’,:consumer\_secret =\> '** ’)  
end

def request  
@request\_token = @client.request\_token(:oauth\_callback =\> ‘http://  
0.0.0.0:3000/oauth\_callback’)  
end

def authorize session  
puts “DEBUG session #{session.to\_json}”  
@access\_token = @client.authorize(  
session[:request\_token],  
session[:request\_token\_secret],  
:oauth\_verifier =\> params  
[:oauth\_verifier])  
if @client.authorized?  
access\_token = @access\_token.token  
secret\_token = @access\_token.secret  
end  
end

def prepare\_session session  
session[:request\_token] = @request\_token.token  
session[:request\_token\_secret] = @request\_token.secret  
end

def url  
@request\_token.authorize\_url  
end  
end

Thanks!

-Andrew
