如何使用Laravel的Passport程序包验证不同的密码列.
如果我想从不同的"用户名"列进行身份验证,可以使用以下代码完成:
public function findForPassport($username) {
return $this->where('id', $username)->first();
}
Run Code Online (Sandbox Code Playgroud)
它将以Id作为列.如果我想使用其他"密码"列,该怎么办?表中的一列具有不同的名称,例如'uid_token'.
我按照这里的指南:https://laravel.com/docs/5.4/passport#consuming-your-api-with-javascript
使用axios:
...
mounted: function() {
axios.get('/api/user')
.then(function (response) {
console.log(response)
})
.catch(function (response) {
console.error(response);
});
},
Run Code Online (Sandbox Code Playgroud)
但是响应始终是未经身份验证的,我检查是否存在laravel_token cookie,它是:
我正在运行apache2(docker)
----更新 -
在调试时,它实际上是在此方法中失败的xsrf标记TokenGuard:
/**
* Authenticate the incoming request via the token cookie.
*
* @param Request $request
* @return mixed
*/
protected function authenticateViaCookie($request)
{
try {
$token = $this->decodeJwtTokenCookie($request);
} catch (Exception $e) {
return;
}
# This is not passing:
if (! $this->validCsrf($token, $request) ||
time() >= $token['expiry']) {
return;
} …Run Code Online (Sandbox Code Playgroud) 我在laravel/passport中使用授权补助金时遇到问题.我经常收到这个错误:
{"error":"unsupported_grant_type","message":"授权服务器不支持授权授权类型.","提示":"检查grant_type参数"}
首先,它需要我登录页面,当我登录时抛出上述错误.但密码授予工作正常.
我使用:php artisan passport:client创建了我的客户端
您好,我尝试做一个Web应用程序,但是我遇到了问题。当我从/ oauth / token请求令牌时,收到以下响应:
{"error":"unsupported_grant_type","message":"The authorization grant type is not supported by the authorization server.","hint":"Check the `grant_type` parameter"}
Run Code Online (Sandbox Code Playgroud)
我的代码是:
import { Injectable } from '@angular/core';
import { Http, Response, RequestOptions, Headers } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
@Injectable()
export class UserService {
private API: string = 'api/';
private OAuth: string = 'oauth/'
constructor(private _HTTP: Http) { }
private get_header(): RequestOptions {
let headers = new Headers();
headers.append('Access-Control-Allow-Origin', '*' );
headers.append('Content-Type', 'application/x-www-form-urlencoded' );
return new RequestOptions({ …Run Code Online (Sandbox Code Playgroud) 一旦将CreateFreshApiToken添加到Kernel.php的“ Web”中间件组中,它应该将laravel_token cookie附加到通过Web中间件发出的每个请求的响应中,不是吗?例如,该组中应该接收Cookie的所有内容:
Route::group(['middleware' => ['web']], function () {
Route::get('/{vue?}', function () { return view('index'); } )->where('vue', '[\/\w\.-]*');
});
Run Code Online (Sandbox Code Playgroud)
我正在尝试替换使用client_secret的当前工作流,因为看到oauth2和网站在同一个域中,借助CreateFreshApiToken的自耗式api的想法对它有很好的帮助,尽管在这一点上我还不是确定我是否做对了。
我正在使用Laravel Passport API通过个人访问令牌在Laravel和外部"代理"之间进行通信:https://laravel.com/docs/5.5/passport#personal-access-tokens
您可以创建令牌:via $token = \Auth::user()->createToken('name')->accessToken;
($ token然后只保存令牌本身,而不是对象)
如何获取token()->id新创建的令牌?
我需要获取ID以将其存储在数据库中以与其他表建立关系.
在api.php下面的路线文件中,有公共路线和私人路线:
Route::group(['namespace' => 'API'], function() {
// Public routes (auth not required)
Route::group([], function() {
Route::get('/testauth1', 'TestController@testauth1');
// more public routes...
});
// Private routes (auth required)
Route::group(['middleware' => 'auth:api'], function() {
Route::get('/testauth2', 'TestController@testauth2');
// more private routes...
});
});
Run Code Online (Sandbox Code Playgroud)
在TestContoller这些是上面提到的2种方法:
class TestController extends Controller {
public function testauth1(\Request $request) {
// return auth()->user(); // does not return user
return $request->user(); // does not return user
}
public function testauth2() {
return auth()->user(); // returns user …Run Code Online (Sandbox Code Playgroud) 我使用 command 安装了 laravel 护照compser require laravel/passsport,但在此之后,database/migrations目录中没有进行新的迁移。这是为什么?
我正在关注文档,所以我运行了它。
作曲家需要laravel /护照
但这就是我得到的...
Using version ^6.0 for laravel/passport
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- laravel/passport v6.0.7 requires illuminate/database ~5.6 -> satisfiable by illuminate/database[5.6.x-dev, 5.7.x-dev, 5.8.x-dev, v5.6.0, v5.6.1, v5.6.10, v5.6.11, v5.6.12, v5.6.13, v5.6.14, v5.6.15, v5.6.16, v5.6.17, v5.6.19, v5.6.2, v5.6.20, v5.6.21, v5.6.22, v5.6.23, v5.6.24, v5.6.25, v5.6.26, v5.6.27, v5.6.28, v5.6.29, v5.6.3, v5.6.30, v5.6.31, v5.6.32, v5.6.33, v5.6.34, v5.6.35, …Run Code Online (Sandbox Code Playgroud) 我正在使用 Laravel 通行证进行 API 实现,当用户登录该站点时,它会创建一个新令牌,旧令牌将被撤销,因为此记录每天都在增加..
有没有办法删除护照过期的令牌?
提前致谢。
laravel-passport ×10
laravel ×9
php ×4
api ×2
laravel-5 ×2
laravel-5.4 ×2
oauth-2.0 ×2
angular ×1
composer-php ×1
jwt ×1
laravel-5.3 ×1
laravel-5.5 ×1
laravel-5.6 ×1
token ×1