CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Sat, 30 Aug 2025 13:31:48 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20080615024417
location: https://web.archive.org/web/20080615024417/https://github.com/zhangxue/openid-rails-kit/tree
server-timing: captures_list;dur=0.945829, exclusion.robots;dur=0.033982, exclusion.robots.policy;dur=0.014953, esindex;dur=0.022184, cdx.remote;dur=26.691392, LoadShardBlock;dur=218.144735, PetaboxLoader3.datanode;dur=127.891952, PetaboxLoader3.resolve;dur=52.587226
x-app-server: wwwb-app213
x-ts: 302
x-tr: 278
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app213; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 302
server: nginx
date: Sat, 30 Aug 2025 13:31:49 GMT
content-type: text/html; charset=utf-8
content-length: 121
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Sun, 15 Jun 2008 02:44:16 GMT
x-archive-orig-connection: close
x-archive-orig-status: 302 Found
location: https://web.archive.org/web/20080615024417/https://github.com/zhangxue/openid-rails-kit/tree/master
x-archive-orig-x-runtime: 0.39232
x-archive-orig-cache-control: no-cache
x-archive-orig-content-length: 121
cache-control: max-age=1800
memento-datetime: Sun, 15 Jun 2008 02:44:17 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 15 Jun 2008 02:44:17 GMT", ; rel="memento"; datetime="Sun, 15 Jun 2008 02:44:17 GMT", ; rel="last memento"; datetime="Sun, 15 Jun 2008 02:44:17 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_4_20080615021845_crawl101-c/52_4_20080615023926_crawl103.arc.gz
server-timing: captures_list;dur=0.539180, exclusion.robots;dur=0.020051, exclusion.robots.policy;dur=0.009267, esindex;dur=0.013234, cdx.remote;dur=6.945541, LoadShardBlock;dur=198.100982, PetaboxLoader3.datanode;dur=130.513709, PetaboxLoader3.resolve;dur=220.689135, load_resource;dur=217.280312
x-app-server: wwwb-app213
x-ts: 302
x-tr: 453
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Sat, 30 Aug 2025 13:31:50 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.6.26
x-archive-orig-date: Sun, 15 Jun 2008 02:44:17 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-x-runtime: 0.85279
x-archive-orig-etag: "942781ecd593d6b5b3187835babc82bf"
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-orig-content-length: 22569
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sun, 15 Jun 2008 02:44:17 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Sun, 15 Jun 2008 02:44:17 GMT", ; rel="memento"; datetime="Sun, 15 Jun 2008 02:44:17 GMT", ; rel="next memento"; datetime="Mon, 16 Jun 2008 08:36:48 GMT", ; rel="last memento"; datetime="Mon, 16 Jun 2008 08:36:48 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_4_20080615021845_crawl101-c/52_4_20080615023926_crawl103.arc.gz
server-timing: captures_list;dur=0.513442, exclusion.robots;dur=0.018954, exclusion.robots.policy;dur=0.008166, esindex;dur=0.012048, cdx.remote;dur=29.766999, LoadShardBlock;dur=280.238682, PetaboxLoader3.datanode;dur=158.674741, PetaboxLoader3.resolve;dur=593.456823, load_resource;dur=574.362775
x-app-server: wwwb-app213
x-ts: 200
x-tr: 938
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
zhangxue's openid-rails-kit at master — GitHub
This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (

This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (

Fork of stympy/openid-rails-kit | |
Description: | Starter Rails application with OpenID login and account creation |
Homepage: | https://railskits.com/openid |
Clone URL: |
git://github.com/zhangxue/openid-rails-kit.git
Give this clone URL to anyone.
git clone git://github.com/zhangxue/openid-rails-kit.git
|
Repo Search: |

Zhang Xue (author)
Tue Jun 03 00:02:56 -0700 2008
name | age | message | |
---|---|---|---|
![]() |
.braids | Thu May 22 11:03:43 -0700 2008 | Add mirror 'vendor/plugins/auto_migrations/'. [Benjamin Curtis] |
![]() |
.gitignore | Thu May 22 10:32:55 -0700 2008 | More restful auth. Ignoring db. [Benjamin Curtis] |
![]() |
MIT-LICENSE | Tue May 27 15:55:47 -0700 2008 | readme and license [Benjamin Curtis] |
![]() |
README | Tue May 27 16:15:48 -0700 2008 | Added info about the ruby-openid gem [Benjamin Curtis] |
![]() |
Rakefile | Thu May 22 10:14:28 -0700 2008 | Initial import [Benjamin Curtis] |
![]() |
app/ | Mon May 26 15:52:20 -0700 2008 | Improved account creation [Benjamin Curtis] |
![]() |
config/ | Tue May 27 12:11:49 -0700 2008 | Added a couple of convenience routes [Benjamin Curtis] |
![]() |
db/ | Wed May 28 07:52:22 -0700 2008 | oops, seems Ben forgot to fill in db/schema.rb [Zhang Xue] |
![]() |
doc/ | Thu May 22 10:14:28 -0700 2008 | Initial import [Benjamin Curtis] |
![]() |
lib/ | Thu May 22 10:27:49 -0700 2008 | Restful authentication [Benjamin Curtis] |
![]() |
log/ | Wed May 28 08:06:05 -0700 2008 | type error [Zhang Xue] |
![]() |
public/ | Thu May 22 10:59:01 -0700 2008 | Adding some style [Benjamin Curtis] |
![]() |
script/ | Thu May 22 10:24:46 -0700 2008 | Added rspec [Benjamin Curtis] |
![]() |
spec/ | Tue Jun 03 00:02:56 -0700 2008 | small changes on spec, mostly some type or copy... [Zhang Xue] |
![]() |
stories/ | Thu May 22 10:27:49 -0700 2008 | Restful authentication [Benjamin Curtis] |
![]() |
test/ | Thu May 22 10:14:28 -0700 2008 | Initial import [Benjamin Curtis] |
![]() |
vendor/ | Tue May 27 11:06:03 -0700 2008 | Getting all the specs to pass [Benjamin Curtis] |
README
== Welcome to the OpenID Rails Kit This kit will help you get a quick start on building new web applications that need to allow logins via OpenID, as well as with a standard username/password combination. Running the app as-is will allow to create accounts and log in to accounts that have been previously created. The kit even handles Yahoo's OpenID implementation of passing back to the application a different identity URL than the user specifies when creating an account. Most of this kit is made up of the excellent work done by others, in particular the restful_authentication and open_id_authentication plugins. I have made minor tweaks here and there, and added some glue code for account creation, but otherwise the bulk of what you've received has been generously provided by others to the community. The new code I have contributed is released under the MIT License (see the MIT-LICENSE file for more info). == Getting Started This code provides a complete, running Rails application. There are a few things you need to do to get started, though. First, you need to have the ruby-openid gem installed (version 2.0.4 is the latest at the time of this writing): gem install ruby-openid Next, you should create your SQLite database and the database tables with the following rake command on the command line: rake db:schema:load After bootstrapping the database, you'll need to make at least one edit to the code. In config/environment.rb, you need to specify a new secret for the cookie session storage. Change line 41 of config/environment.rb, replacing the secret with the one generated by this command: rake secret Once that's done, you are ready to go. Start up the app and browse to it in your web browser. Create a new account, and you'll be logged in. == Contents Hopefully you're familiar enough with the basics of Rails that I don't have to explain what every file in this archive does. If not, go read some books like Agile Web Development with Rails and then come back here. With that out of the way, here are some of the files you'll want to check out. Basically, the kit is made up of the files you get from running the generator from the restful_authentication plugin, with changes made for creating and authenticating accounts via OpenID. app/ controllers/ users_controller.rb - The create method has been modified to check whether OpenID is being used, and if so, stuffs the parameters submitted from the form into the session so they can be retrieved when the user returns from the OpenID provider. Upon returning from the provider, the new user account is created and the user is logged in. sessions_controller.rb - Similar to the UsersController, the create method has been changed to redirect to the OpenID provider if an OpenID URL was provided, and then loads the user record based on the identity URL after returning from the OpenID provider. models/ user.rb - I have made a few changes here (and related changes deeper in the plugin code) to allow a User record to validate without a login and password if OpenID is being used. == Shameless self-promotion If you find this code useful, you might also be interested in other, similar starter applications that can be found at https://railskits.com/. For example, if you are building a software-as-a-service Rails application, the SaaS Rails Kit provides you tried and tested code for recurring billing, subdomain-based accounts, etc. It will save you a ton of time in building your next Rails application.
This feature is coming soon. Sit tight!