npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-twitter-auth-light

v0.3.1

Published

A Twitter logging component based on callbacks. You can manage everything.

Downloads

205

Readme

NPM npm version License

React Twitter Authentication Component

A React Twitter oAUth Sign-in / Log-in Component for React

Installation

npm install react-twitter-auth-light

Usage

<TwitterLogin
  loginUrl="http://localhost:4000/api/v1/auth/twitter"
  onFailure={this.onFailed}
  onSuccess={this.onSuccess}
  requestTokenUrl="http://localhost:4000/api/v1/auth/twitter/reverse"
/>

Custom content that overrides default content:

<TwitterLogin
  loginUrl="http://localhost:4000/api/v1/auth/twitter"
  onFailure={this.onFailed}
  onSuccess={this.onSuccess}
  requestTokenUrl="http://localhost:4000/api/v1/auth/twitter/reverse"
  showIcon={true}
  customHeaders={customHeader}
>
  <b>Custom</b> Twitter <i>Login</i> content
</TwitterLogin>

Custom content and handling by callbacks:

  const [twitterData, setTwitterData] = useState({});

  const fetchTwitterRequestToken = () => {
    return new Promise((resolve, reject) => {
      authApi.socialLoginRequest().then((data) => {
        const { oauth_token } = data;
        setTwitterData(data);
        resolve({ oauth_token })
      }, reject)
    });
  };
  
  const fetchTwitterOauthToken = (oauth_verifier, oauth_token) => {
    return new Promise((resolve) => {
      const twitter_data = {
        ...twitterData,
        oauth_token,
        oauth_verifier
      };
      authApi.socialLogin(twitter_data).then(resolve, reject);
    });
  };
<TwitterLogin
  fetchRequestToken={fetchTwitterRequestToken}
  fetchOauthToken={fetchTwitterOauthToken}
  onFailure={this.onFailed}
  onSuccess={this.onSuccess}
  tag="span"
>
  <button>login with twitter</button>
</TwitterLogin>

Options

| params | value | default value | description | | :-------------: | :------: | :------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | | tag | string | button | tag that should be used to create element that will be used as loging element | | text | string | Sign in with Twitter | text that will be shown in component | | loginUrl | string | | URL that will be used to finish 3rd step of authentication process | | requestTokenUrl | string | | URL that will be used to get request token | | onFailure | function | | function that will be called if user cannot be authenticated | | onSuccess | function | | function that will be called if user is successfully authenticated | | disabled | boolean | false | disable component | | style | object | | style object | | className | string | | class name for component | | dialogWidth | number | 600 | dialog width | | dialogHeight | number | 400 | dialog height | | credentials | string | same-origin | indicates whether the user agent should send cookies from the other domain in the case of cross-origin requests. Possible values: omit, same-origin, include | | customHeaders | object | {} | custom headers should be object with fields that needs to be sent to user server. Field name will be used as header key and field value as header value. Because of bug in fetch implementation all keys will be lowercase. | | children | node | | this props can be used in order to override default component content | | forceLogin | bool | false | force user to authenticate with Twitter username and password | | screenName | string | | prefills the username input box of the OAuth login screen with the given value | | fetchMethod | string | POST | fetch method GET or POST or PUT | | fetchRequestToken | function | | callback to handle requesting token by yourself | | fetchOauthToken | function | | callback to handle login by yourself |

Examples

Full example can be found in example folder.

You can find tutorial that explains in details how to implement Twitter authentication with RESTful backend here.

Workflow

The detailed explanation of the whole process can be found in Twitter documentation. In picture below you can find out all the steps that are needed.

Twitter authentication workflow

License

react-twitter-auth is released under MIT License.