Laravel: Using multiple columns for authentication in passport - laravel

Note: I have asked a similar question here: Laravel: Using multiple columns for authentication but this question is referring specifically to Passport.
I have a Laravel 6 application that uses Passport.
In a typical application, the user would just specify their email, where the email is unique.
However, in my application, I have 2 columns in the User model that is used to authenticate users.
app_id (usually sent as a header)
email
unique(app_id, email)
So in order to login, we need to pass both an app_id and an email, along with the password. The same email could be used across different app_ids.
How would I achieve this?

Related

User Account Registration and Login Based on External API in Laravel

I have been trying to create an authentication in Laravel that is based on simple verification via an external services API key. The external API will provide me details like the username associated with the account a user should only have to supply an API key to login. No password, email, or username required.
Looking at Laravel's documentation it seems like using something like they demonstrate in the "Manually Authenticating Users" section may be most applicable. My problem is that this still appears to be based on a email + password credential model.
What is the proper way to modify/extend the frameworks authentication system to use an API key. If I use this manual authentication model I would be able to connect to the API and verify the user but I don't know the best way to modify it to accept an API key and username as the "credentials" for a new account (username would be coming from the API response data).

How to make user email unique based on user roles

I am new to laravel i am using laravel 6x.
Now i want to know how to make user email unique based on user roles .I am using spatie permissions
I have two type of users
admin
End user
Now i want to use laravel validation for same email for different roles,that means, email should be unique by roles.
Anybody has any idea, please let me know

How do you create multiple registration in laravel

I'm using laravel 6 and I want to create an app with two different users. One user is a user registering on the app as an individual while the other user is a user registering on behalf of a company/organization.
For an individual user, firstname, lastname, email and password fields are required while for the company/organization, the companyname, email and password are required. I would like to have two registration forms to register the two types of users.
I have searched for a similar question but the one I found on this platform wasn't answered. Kindly help.
Seems to me that this tutorial could be what you're looking for: https://laravelarticle.com/laravel-multi-authentication
It creates authentication system for two user groups - regular and admin users.

Getting user gender via spring social for facebook

We have developed an app that let user login with facebook. The app has been granted all required permissions to retrieve name, email, gender and age range etc. But our app developer stored only id,name and email while user login. Now we need to retrieve gender and age range of all those users who have logged in the app.
Is there a way to rerun user query to retrieve those data? I am looking to develop an program using Spring-social and RestFB but it needs user login action to retrieve required data which is problem in our case since we cannot recreate login action again.
As long as the user granted public_profile permission to your app, and you have their app-scoped user id, you can make the API call using your app access token.
And if you are looking to request this data for a lot of users, then you should optimize your requests in the following ways:
request the fields you need only: /user-id?fields=id,gender
request data for multiple users in one go: /?ids=user-id-1,user-id-2,user-id-3&fields=fields=id,gender – https://developers.facebook.com/docs/graph-api/using-graph-api/v2.5#multirequests
perhaps even use Batch Requests if necessary, https://developers.facebook.com/docs/graph-api/making-multiple-requests/

Best Approach on Social Authentication Providers

Currently I am developing an application with several access methods based on Laravel/Socialite, I want to allow users authenticate with facebook, twitter, google so far or creates it's own account by filling a form with name, email, password.
Routes
login/
login/facebook
login/twitter
login/google
Questions :
¿What is the best approach once the User data has been obtained from the auth provider?
¿How to handle a common data user storage?, I mean, I am storing only person name, email and avatar, but how about the token provided by the auth process.
¿How to handle when user log in with more of 1 providers with a same email address?
And how to handle when a user set password to his account created trough facebook?
I thank your attention .

Resources