Code Monkey home page Code Monkey logo

apple-auth's Introduction

 Sign in with Apple for Node.js

Follow @ananayarora

An easy-to-use Node.js library for Signing in with Apple!

Now with support for fetching the name and email!

⚠️ Important note: Apple will only provide you with the name and email ONCE which is when the user taps "Sign in with Apple" on your app the first time. Keep in mind that you have to store this in your database at this time! For every login after that, Apple will provide you with a unique ID that you can use to lookup the username in your database.

Check out the passport version of this library here:

https://github.com/ananay/passport-apple

https://npmjs.com/package/passport-apple

Setup

Begin by installing the library: npm install apple-auth

The configurations for Sign in with Apple are quite extensive so I've made an extensive SETUP.md file that you can read https://github.com/ananay/apple-auth/blob/master/SETUP.md

Example

I've created an example of how to use this library with Express! Check it out here:

https://github.com/ananay/apple-auth-example

Example live on https://apple.ananay.dev

Usage

Initialize it using the following code:

const fs = require('fs');
const AppleAuth = require('apple-auth');
const config = fs.readFileSync("./config/config");
const auth = new AppleAuth(config, './config/AuthKey.p8');

Methods:

  • auth.loginURL() - Creates the Login URL that your users will use to login to
  • auth.accessToken(grantCode) - Gets the access token from the grant code received
  • auth.refreshToken(refreshToken) - Gets the access token from a refresh token

Troubleshooting

invalid_grant when authorization code is generated by iOS App

Fix: If the authorizationCode was generated by your app, you should use your App ID as your clientId and not your service one. Discussion: ananay#13

Questions / Contributing

Feel free to open issues and pull requests. If you would like to be one of the core creators of this library, please reach out to me at [email protected] or message me on twitter @ananayarora!

Created with ❤️ by Ananay Arora

⚠️ Disclaimer

This repository is NOT developed, endorsed by Apple Inc. or even related at all to Apple Inc. This library was implemented solely by the community's hardwork, and based on information that is public on Apple Developer's website. The library is a helper library for anyone trying to implement Apple's Sign in with Apple.

apple-auth's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.