strapi / rfcs

RFCs for Strapi future changes
70 stars 33 forks source link

New auth Provider 'Apple SignIn' #20

Open Lith opened 4 years ago

Lith commented 4 years ago

This RFC refer to https://github.com/strapi/strapi/issues/6586

RFC Preview link

Update I've begin a draft article about how to implement Apple Sign In right now on Strapi All feedback are welcome, I will update RFC informations and the PR about Apple SignIn soon.

alexandrebodin commented 4 years ago

Thanks for this RFC ! Correct me If I'm wrong but from what I understand the only specific change is to add a POST route for the callback is that right ?

Lith commented 4 years ago

Thanks for this RFC ! Correct me If I'm wrong but from what I understand the only specific change is to add a POST route for the callback is that right ?

With this implementation, yes, it's the "main" change, and we need to add a generateToken method with a variable that read the private key file. I've overload configuration this week for my website, I will send you an update with all changes.

My 2nd solution, implemented successfully on my website, send the redirect_uri to my client website, and the client (with access_token) send a GET request to Strapi, because, when you send a POST request, we loss the response body (Grant redirect) and we can not send it to the next method. Not sure if I'm clear about it...

I will try to make a drawing to explain different solution of implementation.

Also, I agree with @derrickmehaffy, maybe it will be interesting to have this as a plugin like email or upload.

Thanks,

derrickmehaffy commented 4 years ago

Also, I agree with @derrickmehaffy, maybe it will be interesting to have this as a plugin like email or upload.

One of those things we would love to do but lack the time at the moment, it requires a massive refactor to users-permissions and the scheduling of that is left entirely up to @sam-pires / @JabStrapi and the engineering teams.

glenselle commented 3 years ago

Is there anything left that needs to be done here that others could help with to get this added? @Lith were there changes you had locally you were planning to push?

christophemacabiau commented 3 years ago

Thanks @Lith for your work on this issue

derrickmehaffy commented 3 years ago

Related article by @Lith (thank you :heart: )

https://medium.com/@vanessa.pasque/implement-apple-sign-in-with-strapi-a9f0ff4b6417

strapi-cla commented 3 years ago

CLA assistant check
All committers have signed the CLA.

mriabokliach commented 2 years ago

@derrickmehaffy Derrick, is there any news regarding this topic? The RFC is still open after such a long time. Unfortunately, Vanessa's tutorial on Medium isn't applicable anymore for V4. And looks like that was the only implementation that Google knows about...

derrickmehaffy commented 2 years ago

@derrickmehaffy Derrick, is there any news regarding this topic? The RFC is still open after such a long time. Unfortunately, Vanessa's tutorial on Medium isn't applicable anymore for V4. And looks like that was the only implementation that Google knows about...

Currently no as it requires us to purchase a dev license to properly test. A user in our discord was able to add apple login to users-permissions the other day.

kkiermasz commented 2 years ago

@derrickmehaffy I'd love to see AppleID sign-in method in strapi. Do not hesitate to reach me via email. I'll be happy to help (e.g. can create an app for testing purposes)

derrickmehaffy commented 2 years ago

@derrickmehaffy I'd love to see AppleID sign-in method in strapi. Do not hesitate to reach me via email. I'll be happy to help (e.g. can create an app for testing purposes)

As mentioned before, this isn't something we will likely implement as it requires us to purchase and maintain a license from Apple to do so, this is why we don't implement several other providers. Eventually we want to move the auth providers to their own packages much like we do with upload and email so that a community member can maintain an Apple one.

EloB commented 1 year ago

I've created a PR for this one. Please have a look at it :)

https://github.com/strapi/strapi/pull/15522