Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Kratos | 8,767 | 15 | 21 hours ago | 541 | June 01, 2022 | 261 | apache-2.0 | Go | ||
Next-gen identity server (think Auth0, Okta, Firebase) with Ory-hardened authentication, MFA, FIDO2, TOTP, WebAuthn, profile management, identity schemas, social sign in, registration, account recovery, passwordless. Golang, headless, API-only - without templating or theming headaches. Available as a cloud service. | ||||||||||
Django Socialauth | 578 | 10 years ago | other | Python | ||||||
Allows logging in via Facebook, Yahoo, Gmail, Twitter and Openid | ||||||||||
Buji Pac4j | 483 | 31 | 8 | 8 days ago | 26 | August 26, 2022 | apache-2.0 | Java | ||
Bridge from the pac4j security library to Shiro | ||||||||||
Play Pac4j | 393 | 2 | 3 days ago | 22 | January 14, 2022 | 1 | apache-2.0 | Java | ||
Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT... | ||||||||||
Spring Security Pac4j | 266 | 37 | 7 | 8 days ago | 32 | November 30, 2022 | apache-2.0 | Java | ||
Bridge from the pac4j security library to Spring Security (reactive) | ||||||||||
Sdk3rd | 246 | 3 years ago | 4 | apache-2.0 | Java | |||||
第三方SDK集成库,授权/分享/支付 | ||||||||||
Rpx_now | 231 | 104 | 5 | 4 years ago | 26 | July 06, 2013 | 1 | Ruby | ||
Ruby: RPXNow.com user login/creation and view helpers Facebook, Twitter, Google, MSN, OpenID, MySpace, Yahoo -- All in One | ||||||||||
Loginpass | 205 | 2 years ago | 20 | bsd-3-clause | Python | |||||
Login with Google, GitHub, Twitter, Facebook and many other networks. | ||||||||||
Nextcloud Oidc Login | 163 | 25 days ago | 56 | agpl-3.0 | PHP | |||||
Nextcloud login via a single OpenID Connect 1.0 provider | ||||||||||
Spark Pac4j | 155 | 27 | 1 | 11 days ago | 18 | September 09, 2022 | 2 | Java | ||
Security library for Sparkjava: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT... |
Janrain Engage (formerly known as RPXNow):
gem install rpx_now
Example application, go play around!
RPXNow.api_key = "YOU RPX API KEY"
This example uses the SessionsController, if you dont have one built it and add routes(rpx_token is a post request)
skip_before_filter :verify_authenticity_token, :only => [:rpx_token] # RPX does not pass Rails form tokens...
# user_data
# found: {:name=>'John Doe', :username => 'john', :email=>'[email protected]', :identifier=>'blug.google.com/openid/dsdfsdfs3f3'}
# not found: nil (can happen with e.g. invalid tokens)
def rpx_token
raise "hackers?" unless data = RPXNow.user_data(params[:token])
self.current_user = User.find_by_identifier(data[:identifier]) || User.create!(data)
redirect_to '/'
end
# getting additional profile fields (these fields are rarely filled)
# all possibilities: https://rpxnow.com/docs#profile_data
data = RPXNow.user_data(params[:token], :additional => [:gender, :birthday, :photo, :providerName, ...])
# normal + raw data
RPXNow.user_data(params[:token], :additional => [:raw_response])[:raw_response]['profile]['verifiedEmail']
# only raw data
email = RPXNow.user_data(params[:token], :raw_response => true)['profile']['verifiedEmail']
# with extended info like friends, accessCredentials, portable contacts. (most Providers do not supply them)
RPXNow.user_data(params[:token], :extended => true)[:extended]['friends'][...have a look at the RPX API DOCS...]
<%=RPXNow.embed_code('My-Rpx-Domain', url_for(:controller => :session, :action => :rpx_token, :only_path => false))%>
OR
<%=RPXNow.popup_code('Login here...', 'My-Rpx-Domain', url_for(:controller => :session, :action => :rpx_token, :only_path => false), options)%>
:language => 'en'
janrain tries to detect the users language, but you may overwrite it possible languages
:default_provider => 'google'
possible default providers
:flags => 'show_provider_list'
possible flags
:html => {:id => 'xxx'}
is added to the popup link (popup_code only)
:fallback_url => :enable
forces fallback link to /openid/embed url (default)
:fallback_url => :disable
disables fallback url (will mean Javascript is required for users to sign in)
:fallback_url => :legacy
forces fallback to legacy widget url
For more on the status of fallback URLs see Janrain Support Forum discussion
popup_code
can also be called with :unobtrusive => true
( --> just link without javascript include).
To still get the normal popup add RPXNow.popup_source('My-Rpx-Domain', url_for(:controller => :session, :action => :rpx_token, :only_path => false), [options])
Options like :language / :flags should be given for both.
RPXNow.api_version = 2
RPXNow.domain = 'other-domain.com'
You can map your primary keys (e.g. user.id) to identifiers, so that
users can login to the same account with multiple identifiers.
RPXNow.map(identifier, primary_key) #add a mapping
RPXNow.unmap(identifier, primary_key) #remove a mapping
RPXNow.mappings(primary_key) # [identifier1,identifier2,...]
RPXNow.all_mappings # [["1",['google.com/dsdas','yahoo.com/asdas']], ["2",[...]], ... ]
After a primary key is mapped to an identifier, when a user logs in with this identifier,
RPXNow.user_data
will contain his primaryKey
as :id
.
A identifyer can only belong to one user (in doubt the last one it was mapped to)
class User < ActiveRecord::Base
include RPXNow::UserIntegration
end
user.rpx.identifiers == RPXNow.mappings(user.id)
user.rpx.map(identifier) == RPXNow.map(identifier, user.id)
user.rpx.unmap(identifier) == RPXNow.unmap(identifier, user.id)
Retrieve all contacts for a given user: RPXNow.contacts(identifier).each {|c| puts "#{c['displayName']}: #{c['emails']}}
Send a status update to provider (a tweet/facebook-status/...) : RPXNow.set_status(identifier, "I just registered at yourdomain.com ...")
Post a users activity, on their e.g. Facebook profile, complete with images, titels, rating, additional media, customized links and so on ...
RPXNow.activity( identifier,
:url => href, :action => 'Im loving my new', :user_generated_content => 'Im loving my new ... ',
:title => product.title, :description => product.description,
:action_links => [{:text => 'view >>', :href => product_url(product, :only_path => false)}],
:media => [{:type => :image, :src => product.image_url, :href => product_url(product, :only_path => false)}]
)
Same response as auth_info but can be called with a identifier at any time.
Offline Profile Access must be enabled.
RPXNow.get_user_data(identifier, :extended => true)
Same response as user_data with :raw_response, but without any kind of failure detection or post processing. RPXNow.auth_info(params[:token])
Michael Grosser
[email protected]
Hereby placed under public domain, do what you want, just do not hold me accountable...