0
ログインフォームにCSRFトークンを持つユーザーを自分のWebサイトにログします。私はIOS上でSwiftとAlamofireを使用しています。ここでAlamofire要求パラメータにCSRFトークンを渡す
は、フォームのコードです:
<form id="login-form" class="body" action="login" method="post">
<div class="form-group label-floating">
<label class="control-label" for="username">Identifiant</label>
<input id="username" type="text" name="username" class="form-control" required/>
</div>
<div class="form-group label-floating">
<label class="control-label" for="password">Mot de passe</label>
<input id="password" type="password" name="password" class="form-control"
required/>
</div>
<div class="footer">
<div class="col-md-offset-3 col-md-6">
<input type="hidden" id="csrf_token" name="_csrf"
value="7cf3b95d-1310-4d00-b1b2-7040340b12e6"/>
<button type="submit" class="btn btn-lg btn-primary btn-block">
Connexion
</button>
</div>
</div>
</form>
私はCSRFトークンを返す関数を作成しました。次に、ユーザーの資格情報とCSRFトークンをログに記録する別の関数を呼び出します。ここで
は、この機能である:
func login(token: String, completion: @escaping (_ success: Bool) -> Void) {
let customerURL = "https://mywebsite.com/uaa/login"
let user = "username"
let password = "password"
let parameters = [ "username" : user, "password" : password, "Authorization" : token]
Alamofire.request(customerURL, method: .post, parameters: parameters, encoding: JSONEncoding.default)
.responseString { response in
switch response.result {
case .success:
print("Validation Successful")
if let JSON = response.result.value {
print(JSON)
}
case .failure(let error):
print(error)
}
}
}
しかし、私は私のアプリを実行すると、ここで私が得るものです:
{"timestamp":1510425797543,"status":403,"error":"Forbidden","message":"Invalid CSRF Token 'null' was found on the request parameter '_csrf' or header 'X-XSRF-TOKEN'.","path":"/uaa/login"}
任意のアイデア?あなたの助けを前もってありがとう!