首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel -使用Laravel端点登录/注册社交媒体帐户的用户

问Laravel -使用Laravel端点登录/注册社交媒体帐户的用户
EN

Stack Overflow用户
提问于 2019-08-14 13:32:00
回答 1查看 103关注 0票数 1

我正在使用Laravel5.8和角7作为应用程序。1.发球: Laravel 5.8 2.客户:角7

我已经在Laravel中创建了端点,用户可以正常地注册或登录,如下所示:

代码语言:javascript
复制
     <?php
 namespace App\Http\Controllers;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
 use Tymon\JWTAuth\Exceptions\JWTException;
 use App\Permission;
 use App\Role;
 use App\User;
 use Validator;

 class ApiController extends Controller
 {

public $successStatus = 200;

 public function register(Request $request)
 {
    $validation = Validator::make($request->all(), [
        'name' => 'required',
        'email' => 'required|email|unique:users|max:255',
        'password' => 'required|confirmed|min:8|max:20',
    ]);
    if ($validation->fails()) {
        return response()->error('Validation failed', 422, $validation->errors());
    }
    $user = User::create([
        'name' => $request->name,
        'email' => $request->email,
        // 'password' => $request->password
        'password' => bcrypt($request->password)
    ]);
    // return response()->success($user, 'Registered');
    $token = auth()->login($user);

    return response()->json([
        'access_token' => $token,
        'token_type' => 'bearer',
        'expires_in' => auth()->factory()->getTTL() * 60
    ], 201);        
 } 

 public function login(Request $request)
 {
    $validator = Validator::make($request->all(), [
        'email' => 'required|string|email|max:255',
        'password'=> 'required'
    ]);

    $credentials = $request->only(['email', 'password']);
    $current_user = $request->email;

    try {
        // verify the credentials and create a token for the user
            if ($validator->fails()) 
            {
                return response()->json($validator->errors(), 422);
            }               
            if (!$token = auth()->attempt($credentials)) 
            {
                return response()->json(['error' => 'Invalid Credentials'], 400);
            }
        } 
        catch (JWTException $e) 
        {
            // something went wrong   
            return response()->error('Could not create token', 500);
        }   

     return response()->json([
     'access_token' => $token,
     'token_type' => 'bearer',
     'current_user' => $current_user,
     'expires_in' => auth()->factory()->getTTL() * 60
     ], 200);
  } 
 }

Am使用jwtAuth

route.php

代码语言:javascript
复制
    // Route to register a user
Route::post('register', 'ApiController@register');
// Route to get a JWT via given credentials.
Route::post('login', 'ApiController@login');

现在的问题是,如何使用以下社交媒体创建用户登录/注册(Laravel后端):

  1. 古尔
  2. 推特
  3. Facebook

它将被角7所消耗。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-08-14 13:42:26

[https://medium.com/techcompose/create-rest-api-in-laravel-with-authentication-using-passport-133a1678a876][1]

请查一下这个网址。如果您想在Laravel中使用rest-api,您应该使用路由文件-“app/api.php”而不是route.php。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57495799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档