具有Pusher Beams身份验证的Laravel后端和Swift前端

问题描述


我正在尝试使用光束对用户进行身份验证,但是我总是遇到错误

SWIFT验证码:

let tokenProvider = BeamsTokenProvider(authURL: url) { () -> AuthData in
let headers = [
    "Authorization": "Bearer \(UserDefaults.standard.object(forKey: AuthService().AccessIdentifier)!)",] // Headers your auth endpoint needs
    let queryParams: [String: String] = [:] // URL query params your auth endpoint needs
    return AuthData(headers: headers,queryParams: queryParams)
                }
                
// PushNotifications instance.
beamsClient.setUserId(String(loginResponse.user!.id!),tokenProvider: tokenProvider,completion: { errorPusher in
           guard errorPusher == nil else {
            print(errorPusher.debugDescription)
            return
          }

   print("Successfully authenticated with Pusher Beams")
 })

SWIFT身份验证错误

Optional(PushNotifications.TokenProviderError.error("[PushNotifications] - Error when synchronising with server: BadJWT(reason: "Invalid JWT signature")"))

Laravel端点代码

 $beamsClient = new PushNotifications(array(
    'instanceId' => env('PUSHER_BEAMS_INSTANCE_ID'),'secretKey' => env('PUSHER_APP_SECRET'),));

 $userID = $request->user()->id; // If you use a different auth system,do your checks here
 $userIDInQueryParam = $request->input('user_id');

 if ($userID != $userIDInQueryParam) {
      return response('Inconsistent request',401);
 } else {
      $beamsToken = $beamsClient->generatetoken(strval($userID));
      return response()->json($beamsToken);
 }

Laravel端点响应

{
    "token": "xxx"
}

我认为问题出在Swift应用程序上,因为端点响应似乎有效

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)